1 | |
---|
2 | !> Defines parameters for OASIS |
---|
3 | |
---|
4 | MODULE mod_oasis_parameters |
---|
5 | ! |
---|
6 | ! -- clim.h 18-08-95 Version 2.0 Author: Laurent Terray |
---|
7 | ! ****** |
---|
8 | ! 26-10-99 Version 2.4 Jean Latour (F.S.E.) MPI-2 support |
---|
9 | !@ |
---|
10 | ! -- mod_clim_proto.f90 12-06-02 Version 3.0 A. Caubel |
---|
11 | ! -- 20-05-03 added PRISM_Recvd/Sent S.Legutke |
---|
12 | |
---|
13 | ! ****************** |
---|
14 | ! |
---|
15 | !@ Contents : variables related to the CLIM library |
---|
16 | !@ -------- |
---|
17 | !@ |
---|
18 | ! |
---|
19 | USE mod_oasis_kinds |
---|
20 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Ok = 0 |
---|
21 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Ok = PRISM_Ok |
---|
22 | |
---|
23 | !-----Ports status |
---|
24 | |
---|
25 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_NotDef = -2 |
---|
26 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_NotDef = PRISM_NotDef |
---|
27 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Var_Uncpl = -1 |
---|
28 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Out = 20 |
---|
29 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Out = PRISM_Out |
---|
30 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_In = 21 |
---|
31 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_In = PRISM_In |
---|
32 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_InOut = 2 |
---|
33 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_InOut = PRISM_InOut |
---|
34 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Recvd = 3 |
---|
35 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Recvd = PRISM_Recvd |
---|
36 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Sent = 4 |
---|
37 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Sent = PRISM_Sent |
---|
38 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_LocTrans = 5 |
---|
39 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_LocTrans = PRISM_LocTrans |
---|
40 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_ToRest = 6 |
---|
41 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_ToRest = PRISM_ToRest |
---|
42 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Output = 7 |
---|
43 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Output = PRISM_Output |
---|
44 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_SentOut = 8 |
---|
45 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_SentOut = PRISM_SentOut |
---|
46 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_ToRestOut = 9 |
---|
47 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_ToRestOut = PRISM_ToRestOut |
---|
48 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_FromRest = 10 |
---|
49 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_FromRest = PRISM_FromRest |
---|
50 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Input = 11 |
---|
51 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Input = PRISM_Input |
---|
52 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_RecvOut = 12 |
---|
53 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_RecvOut = PRISM_RecvOut |
---|
54 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_FromRestOut = 13 |
---|
55 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_FromRestOut = PRISM_FromRestOut |
---|
56 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Waitgroup = 14 |
---|
57 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Waitgroup = PRISM_Waitgroup |
---|
58 | |
---|
59 | !-----Coupler Comm Status |
---|
60 | |
---|
61 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_NONE = 100 |
---|
62 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_NONE = PRISM_NONE |
---|
63 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_COMM_READY = 101 |
---|
64 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_COMM_READY = PRISM_COMM_READY |
---|
65 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_COMM_WAIT = 102 |
---|
66 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_COMM_WAIT = PRISM_COMM_WAIT |
---|
67 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_PUT = 103 |
---|
68 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS3_PUT = PRISM_PUT |
---|
69 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_GET = 104 |
---|
70 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS3_GET = PRISM_GET |
---|
71 | |
---|
72 | !-----Field status |
---|
73 | |
---|
74 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_exported = 1 |
---|
75 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_ignored = 2 |
---|
76 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_input = 3 |
---|
77 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_output = 4 |
---|
78 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_expout = 5 |
---|
79 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_ignout = 6 |
---|
80 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_auxilary = 7 |
---|
81 | |
---|
82 | !----Field local transformation |
---|
83 | |
---|
84 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_instant = 1 |
---|
85 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_average = 2 |
---|
86 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_accumul = 3 |
---|
87 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_min = 4 |
---|
88 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_max = 5 |
---|
89 | |
---|
90 | !----Field conserv option |
---|
91 | |
---|
92 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cnone = 0 |
---|
93 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cglobal = 1 |
---|
94 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cglbpos = 2 |
---|
95 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cgsspos = 6 |
---|
96 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cbasbal = 4 |
---|
97 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cbaspos = 5 |
---|
98 | INTEGER (kind=ip_intwp_p), PARAMETER :: ip_cbsspos = 7 |
---|
99 | |
---|
100 | !-----Parallel distribution |
---|
101 | |
---|
102 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Strategy = 1 |
---|
103 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Segments = 2 |
---|
104 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Npoints = 2 |
---|
105 | |
---|
106 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Serial = 0 |
---|
107 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Apple = 1 |
---|
108 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Box = 2 |
---|
109 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Orange = 3 |
---|
110 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Points = 4 |
---|
111 | |
---|
112 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Offset = 2 |
---|
113 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Length = 3 |
---|
114 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_SizeX = 3 |
---|
115 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_SizeY = 4 |
---|
116 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_LdX = 5 |
---|
117 | |
---|
118 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Serial_Params = 3 |
---|
119 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Apple_Params = 3 |
---|
120 | INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Box_Params = 5 |
---|
121 | |
---|
122 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Strategy = CLIM_Strategy |
---|
123 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Segments = CLIM_Segments |
---|
124 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Npoints = CLIM_Npoints |
---|
125 | |
---|
126 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Serial = CLIM_Serial |
---|
127 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Apple = CLIM_Apple |
---|
128 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Box = CLIM_Box |
---|
129 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Orange = CLIM_Orange |
---|
130 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Points = CLIM_Points |
---|
131 | |
---|
132 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Offset = CLIM_Offset |
---|
133 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Length = CLIM_Length |
---|
134 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_SizeX = CLIM_SizeX |
---|
135 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_SizeY = CLIM_SizeY |
---|
136 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_LdX = CLIM_LdX |
---|
137 | |
---|
138 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Serial_Params = CLIM_Serial_Params |
---|
139 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Apple_Params = CLIM_Apple_Params |
---|
140 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Box_Params = CLIM_Box_Params |
---|
141 | |
---|
142 | !-----Datatypes |
---|
143 | |
---|
144 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Real = 4 |
---|
145 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Real = PRISM_Real |
---|
146 | INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_Double = 8 |
---|
147 | INTEGER (kind=ip_intwp_p), PARAMETER :: OASIS_Double = PRISM_Double |
---|
148 | |
---|
149 | !-----Quit parameters |
---|
150 | ! |
---|
151 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_ContPvm = 0 |
---|
152 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_StopPvm = 1 |
---|
153 | ! |
---|
154 | !-----Error Codes |
---|
155 | ! |
---|
156 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_MaxCodes = -22 |
---|
157 | ! |
---|
158 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Ok = 0 |
---|
159 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_FastExit = -1 |
---|
160 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_BadName = -2 |
---|
161 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_BadPort = -3 |
---|
162 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_BadType = -4 |
---|
163 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_DoubleDef= -5 |
---|
164 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_NotStep = -6 |
---|
165 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_IncStep = -7 |
---|
166 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_IncSize = -8 |
---|
167 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_NotClim = -9 |
---|
168 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_TimeOut = -10 |
---|
169 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Pvm = -11 |
---|
170 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_FirstCall = -12 |
---|
171 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_PbRoute = -13 |
---|
172 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Group = -14 |
---|
173 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_BadTaskId = -15 |
---|
174 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_NoTask = -16 |
---|
175 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_InitBuff = -17 |
---|
176 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Pack = -18 |
---|
177 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Unpack = -19 |
---|
178 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Down = -20 |
---|
179 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_PvmExit = -21 |
---|
180 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: CLIM_Mpi = -22 |
---|
181 | ! INTEGER (kind=ip_intwp_p), PARAMETER :: PRISM_NotFreq = -23 |
---|
182 | ! |
---|
183 | |
---|
184 | CONTAINS |
---|
185 | |
---|
186 | INTEGER (kind=ip_intwp_p) FUNCTION CLIM_Orange_Params(n_segments) |
---|
187 | INTEGER (kind=ip_intwp_p), INTENT(IN) :: n_segments |
---|
188 | CLIM_Orange_Params = 2 + 2*n_segments |
---|
189 | END FUNCTION CLIM_Orange_Params |
---|
190 | |
---|
191 | INTEGER (kind=ip_intwp_p) FUNCTION CLIM_Points_Params(n_points) |
---|
192 | INTEGER (kind=ip_intwp_p), INTENT(IN) :: n_points |
---|
193 | CLIM_Points_Params = 2 + n_points |
---|
194 | END FUNCTION CLIM_Points_Params |
---|
195 | |
---|
196 | INTEGER (kind=ip_intwp_p) FUNCTION OASIS_Orange_Params(n_segments) |
---|
197 | INTEGER (kind=ip_intwp_p), INTENT(IN) :: n_segments |
---|
198 | OASIS_Orange_Params = 2 + 2*n_segments |
---|
199 | END FUNCTION OASIS_Orange_Params |
---|
200 | |
---|
201 | INTEGER (kind=ip_intwp_p) FUNCTION OASIS_Points_Params(n_points) |
---|
202 | INTEGER (kind=ip_intwp_p), INTENT(IN) :: n_points |
---|
203 | OASIS_Points_Params = 2 + n_points |
---|
204 | END FUNCTION OASIS_Points_Params |
---|
205 | |
---|
206 | END MODULE mod_oasis_parameters |
---|