14 USE iso_c_binding,
ONLY : c_double, c_float
20 PUBLIC :: ep_secondary_constructor, &
21 & ep_atm_yac_defcomp_before, &
22 & ep_atm_yac_defcomp_after, &
23 & ep_atm_yac_syncdef_before, &
24 & ep_atm_yac_syncdef_after, &
25 & ep_atm_yac_enddef_before, &
26 & ep_atm_yac_enddef_after, &
27 & ep_atm_init_finalize, &
28 & ep_atm_timeloop_before, &
29 & ep_atm_timeloop_start, &
30 & ep_atm_timeloop_end, &
31 & ep_atm_timeloop_after, &
32 & ep_atm_integrate_before, &
33 & ep_atm_integrate_start, &
34 & ep_atm_integrate_end, &
35 & ep_atm_integrate_after, &
36 & ep_atm_write_output_before, &
37 & ep_atm_write_output_after, &
38 & ep_atm_checkpoint_before, &
39 & ep_atm_checkpoint_after, &
40 & ep_atm_advection_before, &
41 & ep_atm_advection_after, &
42 & ep_atm_physics_before, &
43 & ep_atm_physics_after, &
44 & ep_atm_nudging_before, &
45 & ep_atm_nudging_after, &
46 & ep_atm_surface_before, &
47 & ep_atm_surface_after, &
48 & ep_atm_turbulence_before, &
49 & ep_atm_turbulence_after, &
50 & ep_atm_microphysics_before, &
51 & ep_atm_microphysics_after, &
52 & ep_atm_convection_before, &
53 & ep_atm_convection_after, &
54 & ep_atm_radiation_before, &
55 & ep_atm_radiation_after, &
56 & ep_atm_radheat_before, &
57 & ep_atm_radheat_after, &
58 & ep_atm_gwdrag_before, &
59 & ep_atm_gwdrag_after, &
62 PUBLIC :: comin_flag_none, comin_flag_read, comin_flag_write, comin_flag_sync_halo, comin_flag_device
63 PUBLIC :: comin_zaxis_none, comin_zaxis_2d, comin_zaxis_3d, comin_zaxis_3d_half, comin_zaxis_undef
65 PUBLIC :: comin_hgrid_unstructured_cell, comin_hgrid_unstructured_edge, comin_hgrid_unstructured_vertex
67 PUBLIC :: comin_metadata_typeid_undefined, &
68 & comin_metadata_typeid_integer, &
69 & comin_metadata_typeid_real, &
70 & comin_metadata_typeid_character, &
71 & comin_metadata_typeid_logical
72 PUBLIC :: comin_dim_semantics_undef, &
73 & comin_dim_semantics_nproma, &
74 & comin_dim_semantics_block, &
75 & comin_dim_semantics_unblock, &
76 & comin_dim_semantics_level, &
77 & comin_dim_semantics_container, &
78 & comin_dim_semantics_other, &
79 & comin_dim_semantics_unused
80 PUBLIC :: comin_var_datatype_double, &
81 & comin_var_datatype_float, &
82 & comin_var_datatype_int
84#include "comin_global.inc"
96 INTEGER,
PARAMETER ::
wp = c_double
97 INTEGER,
PARAMETER ::
dp = c_double
98 INTEGER,
PARAMETER ::
sp = c_float
113 ENUMERATOR :: ep_secondary_constructor = 1, &
114 & EP_ATM_YAC_DEFCOMP_BEFORE, &
115 & EP_ATM_YAC_DEFCOMP_AFTER, &
116 & EP_ATM_YAC_SYNCDEF_BEFORE, &
117 & EP_ATM_YAC_SYNCDEF_AFTER, &
118 & EP_ATM_YAC_ENDDEF_BEFORE, &
119 & EP_ATM_YAC_ENDDEF_AFTER, &
120 & EP_ATM_INIT_FINALIZE, &
121 & EP_ATM_TIMELOOP_BEFORE, &
122 & EP_ATM_TIMELOOP_START, &
123 & EP_ATM_TIMELOOP_END, &
124 & EP_ATM_TIMELOOP_AFTER, &
125 & EP_ATM_INTEGRATE_BEFORE, &
126 & EP_ATM_INTEGRATE_START, &
127 & EP_ATM_INTEGRATE_END, &
128 & EP_ATM_INTEGRATE_AFTER, &
129 & EP_ATM_WRITE_OUTPUT_BEFORE, &
130 & EP_ATM_WRITE_OUTPUT_AFTER, &
131 & EP_ATM_CHECKPOINT_BEFORE, &
132 & EP_ATM_CHECKPOINT_AFTER, &
133 & EP_ATM_ADVECTION_BEFORE, &
134 & EP_ATM_ADVECTION_AFTER, &
135 & EP_ATM_PHYSICS_BEFORE, &
136 & EP_ATM_PHYSICS_AFTER, &
137 & EP_ATM_NUDGING_BEFORE, &
138 & EP_ATM_NUDGING_AFTER, &
139 & EP_ATM_SURFACE_BEFORE, &
140 & EP_ATM_SURFACE_AFTER, &
141 & EP_ATM_TURBULENCE_BEFORE, &
142 & EP_ATM_TURBULENCE_AFTER, &
143 & EP_ATM_MICROPHYSICS_BEFORE, &
144 & EP_ATM_MICROPHYSICS_AFTER, &
145 & EP_ATM_CONVECTION_BEFORE, &
146 & EP_ATM_CONVECTION_AFTER, &
147 & EP_ATM_RADIATION_BEFORE, &
148 & EP_ATM_RADIATION_AFTER, &
149 & EP_ATM_RADHEAT_BEFORE, &
150 & EP_ATM_RADHEAT_AFTER, &
151 & EP_ATM_GWDRAG_BEFORE, &
152 & EP_ATM_GWDRAG_AFTER, &
159 CHARACTER(LEN=COMIN_MAX_LEN_EP_NAME),
PARAMETER ::
ep_name(ep_destructor) = [ &
160 &
"EP_SECONDARY_CONSTRUCTOR ", &
161 &
"EP_ATM_YAC_DEFCOMP_BEFORE ", &
162 &
"EP_ATM_YAC_DEFCOMP_AFTER ", &
163 &
"EP_ATM_YAC_SYNCDEF_BEFORE ", &
164 &
"EP_ATM_YAC_SYNCDEF_AFTER ", &
165 &
"EP_ATM_YAC_ENDDEF_BEFORE ", &
166 &
"EP_ATM_YAC_ENDDEF_AFTER ", &
167 &
"EP_ATM_INIT_FINALIZE ", &
168 &
"EP_ATM_TIMELOOP_BEFORE ", &
169 &
"EP_ATM_TIMELOOP_START ", &
170 &
"EP_ATM_TIMELOOP_END ", &
171 &
"EP_ATM_TIMELOOP_AFTER ", &
172 &
"EP_ATM_INTEGRATE_BEFORE ", &
173 &
"EP_ATM_INTEGRATE_START ", &
174 &
"EP_ATM_INTEGRATE_END ", &
175 &
"EP_ATM_INTEGRATE_AFTER ", &
176 &
"EP_ATM_WRITE_OUTPUT_BEFORE ", &
177 &
"EP_ATM_WRITE_OUTPUT_AFTER ", &
178 &
"EP_ATM_CHECKPOINT_BEFORE ", &
179 &
"EP_ATM_CHECKPOINT_AFTER ", &
180 &
"EP_ATM_ADVECTION_BEFORE ", &
181 &
"EP_ATM_ADVECTION_AFTER ", &
182 &
"EP_ATM_PHYSICS_BEFORE ", &
183 &
"EP_ATM_PHYSICS_AFTER ", &
184 &
"EP_ATM_NUDGING_BEFORE ", &
185 &
"EP_ATM_NUDGING_AFTER ", &
186 &
"EP_ATM_SURFACE_BEFORE ", &
187 &
"EP_ATM_SURFACE_AFTER ", &
188 &
"EP_ATM_TURBULENCE_BEFORE ", &
189 &
"EP_ATM_TURBULENCE_AFTER ", &
190 &
"EP_ATM_MICROPHYSICS_BEFORE ", &
191 &
"EP_ATM_MICROPHYSICS_AFTER ", &
192 &
"EP_ATM_CONVECTION_BEFORE ", &
193 &
"EP_ATM_CONVECTION_AFTER ", &
194 &
"EP_ATM_RADIATION_BEFORE ", &
195 &
"EP_ATM_RADIATION_AFTER ", &
196 &
"EP_ATM_RADHEAT_BEFORE ", &
197 &
"EP_ATM_RADHEAT_AFTER ", &
198 &
"EP_ATM_GWDRAG_BEFORE ", &
199 &
"EP_ATM_GWDRAG_AFTER ", &
206 ENUMERATOR :: comin_flag_none = 0, &
207 & COMIN_FLAG_READ = IBSET(0,1), &
208 & COMIN_FLAG_WRITE = IBSET(0,2), &
209 & COMIN_FLAG_SYNC_HALO = IBSET(0,3), &
210 & COMIN_FLAG_DEVICE = IBSET(0,4)
217 ENUMERATOR :: comin_hgrid_unstructured_cell = 1, &
218 & COMIN_HGRID_UNSTRUCTURED_EDGE = 2, &
219 & COMIN_HGRID_UNSTRUCTURED_VERTEX = 3
226 ENUMERATOR :: comin_zaxis_undef = -1, &
227 & COMIN_ZAXIS_NONE = 0, &
228 & COMIN_ZAXIS_2D = 1, &
229 & COMIN_ZAXIS_3D = 2, &
230 & COMIN_ZAXIS_3D_HALF = 3
234 ENUMERATOR :: comin_metadata_typeid_undefined = -1, &
235 & COMIN_METADATA_TYPEID_INTEGER = 0, &
236 & COMIN_METADATA_TYPEID_REAL = 1, &
237 & COMIN_METADATA_TYPEID_CHARACTER = 2, &
238 & COMIN_METADATA_TYPEID_LOGICAL = 3
244 ENUMERATOR :: comin_var_datatype_double = 1, &
245 & COMIN_VAR_DATATYPE_FLOAT, &
246 & COMIN_VAR_DATATYPE_INT
252 ENUMERATOR :: comin_dim_semantics_undef = 1, &
253 & COMIN_DIM_SEMANTICS_NPROMA = 2, &
254 & COMIN_DIM_SEMANTICS_BLOCK = 3, &
255 & COMIN_DIM_SEMANTICS_UNBLOCK = 4, &
256 & COMIN_DIM_SEMANTICS_LEVEL = 5, &
257 & COMIN_DIM_SEMANTICS_CONTAINER = 6, &
258 & COMIN_DIM_SEMANTICS_OTHER = 7, &
259 & COMIN_DIM_SEMANTICS_UNUSED = 8