V3FIT
extcurz_T.f
1 !*******************************************************************************
2 ! File extcurz_T.f
3 ! Contains module extcurz_T
4 ! Defines derived-types: extcurz_desc
5 !
6 !*******************************************************************************
7 ! MODULE extcurz_T
8 ! (extcurz Type Definition, for the V3FIT code)
9 ! SECTION I. VARIABLE DECLARATIONS
10 ! SECTION II. DERIVED-TYPE DECLARATIONS
11 ! SECTION III. INTERFACE BLOCKS
12 ! SECTION IV. CONSTRUCTION SUBROUTINES
13 ! SECTION V. DESTRUCTION SUBROUTINES
14 ! SECTION VI. ASSIGNMENT SUBROUTINES
15 ! SECTION VII. OUTPUT SUBROUTINES
16 ! SECTION VIII. PRIVATE ROUTINES USED IN SXR_T
17 !
18 ! SECTION XVI. COMMENTS FOR DIFFERENT REVISIONS
19 !*******************************************************************************
20 
21  MODULE extcurz_t
22 
23 !*******************************************************************************
24 ! SECTION I. VARIABLE DECLARATIONS
25 !*******************************************************************************
26 
27  USE stel_kinds, ONLY: rprec
28  USE stel_constants, ONLY: pi, zero
29  USE safe_open_mod ! from LIBSTELL/MODULES
30 
31  IMPLICIT NONE
32 
33  PRIVATE rprec, pi, zero
34 
35 !*******************************************************************************
36 ! SECTION II. DERIVED-TYPE DECLARATIONS
37 ! extcurz Description:
38 ! extcurz_desc
39 ! Type of diagnostic specified by % d_type = 'extcurz'.
40 !
41 !*******************************************************************************
42 
44  REAL(rprec) :: s0, u0 ! s,u values describing the circuit
45  END TYPE extcurz_desc
46 
47  CONTAINS
48 
49 !*******************************************************************************
50 ! SECTION IV. CONSTRUCTION SUBROUTINES
51 !*******************************************************************************
52 
53  SUBROUTINE extcurz_desc_construct(this,s0,u0)
54 
55  IMPLICIT NONE
56 
57  TYPE (extcurz_desc), INTENT(inout) :: this
58  REAL(rprec), INTENT(in) :: s0, u0
59 
60  this % s0 = s0
61  this % u0 = u0
62 
63  END SUBROUTINE extcurz_desc_construct
64 
65 !*******************************************************************************
66 ! SECTION V. DESTRUCTION SUBROUTINES
67 !*******************************************************************************
68 
69  SUBROUTINE extcurz_desc_destroy(this)
70 
71  TYPE (extcurz_desc), INTENT(inout) :: this
72 
73  this % s0 = zero
74  this % u0 = zero
75 
76  END SUBROUTINE extcurz_desc_destroy
77 
78 !*******************************************************************************
79 ! SECTION VII. OUTPUT SUBROUTINES
80 !*******************************************************************************
81 !-------------------------------------------------------------------------------
82 ! Write out the contents of a extcurz_desc
83 ! if iou and filaname are present - write to file
84 ! if iou and filename are not present - write to stdout (screen)
85 !
86 ! THIS NEEDS MODIFYING TO BE ABLE TO APPEND RECORDS AND NOT OVERWRITE FILES
87 !-------------------------------------------------------------------------------
88 
89  SUBROUTINE extcurz_desc_write(this,iounit,filename)
90 
91  IMPLICIT NONE
92 
93  TYPE (extcurz_desc), INTENT(in) :: this
94  INTEGER, OPTIONAL, INTENT(in) :: iounit
95  CHARACTER*300, OPTIONAL, INTENT(in) :: filename
96 
97  INTEGER :: iou = 6
98  INTEGER :: istat = 0 !status of safe_open call
99 
100  IF (PRESENT(iounit).AND.PRESENT(filename)) THEN
101  iou=iounit
102  CALL safe_open(iou,istat,filename,'replace','formatted')
103  WRITE(iou,*) 's0 - ', this % s0
104  WRITE(iou,*) 'u0 - ', this % u0
105  ELSE
106  WRITE(*,*) 's0 - ', this % s0
107  WRITE(*,*) 'u0 - ', this % u0
108  END IF
109 
110  END SUBROUTINE extcurz_desc_write
111 
112 !*******************************************************************************
113 ! SECTION XVI. COMMENTS FOR DIFFERENT REVISIONS
114 !*******************************************************************************
115 !
116 ! GLT 10-sep-2012
117 ! first draft
118 !
119 
120  END MODULE extcurz_t
121 
extcurz_t::extcurz_desc
Definition: extcurz_T.f:43