SURFEX v8.1
General documentation of Surfex
prism_dummy_mod.F90
Go to the documentation of this file.
1 !**** PRISM_DUMMY_MOD.F90
2 !
3 ! Purpose.
4 ! --------
5 ! Define interface and dummy routines needed to compile and link ifsMASTER
6 ! with OASIS4 interfaces (ifs/prism/couplo4*) without linking
7 ! to original prism libraries
8 !
9 !
10 ! Contains
11 ! ----------
12 !
13 ! MODULE PRISM_CONSTANTS
14 !
15 ! MODULE PRISM_DUMMY
16 ! INTERFACES for prism routines called in ifs/prism/couplo4*
17 !
18 ! SUBROUTINES
19 ! prism_dummy_* referenced in PRISM_DUMMY
20 !
21 ! Method
22 ! -------
23 ! Provide interfaces with original prism rouinte names and refers to
24 ! dummy subroutines named prism_dummy_* if original name is prism_*
25 !
26 ! To run coupled runs with OASIS4 USE PRISM in ifs/prism/couplo4* instead ! of USE PRISM_DUMMY
27 !
28 ! Reference:
29 ! ---------
30 ! S. Valcke, 2006: OASIS4 User Guide
31 ! PRISM Support Initiative Report No 3,
32 ! CERFACS, Toulouse, France, 64 pp.
33 !
34 ! Author:
35 ! -------
36 ! Johannes Flemming
37 !
38 ! Modifications.
39 ! --------------
40 ! F. Vana 05-Mar-2015 Support for single precision
41 
42 
43 
44 
45 !**************************************************************************
46 
48 
49 USE parkind1 , ONLY : jprd, jpim
50 USE yomprism
51 #ifdef SFX_MPI
52 USE mpl_module, ONLY : mpl_abort
53 #endif
54 IMPLICIT NONE
55 SAVE
56 
59 END INTERFACE
60 
61 INTERFACE prism_put
62 MODULE PROCEDURE prism_dummy_put
63 END INTERFACE
64 
65 
66 INTERFACE prism_get
67 MODULE PROCEDURE prism_dummy_get
68 END INTERFACE
69 
70 
72 MODULE PROCEDURE prism_dummy_initialized
73 END INTERFACE
74 
75 
76 INTERFACE prism_init
77 MODULE PROCEDURE prism_dummy_init
78 END INTERFACE
79 
80 INTERFACE prism_init_comp
81 MODULE PROCEDURE prism_dummy_init_comp
82 END INTERFACE
83 
84 INTERFACE prism_enddef
85 MODULE PROCEDURE prism_dummy_enddef
86 END INTERFACE
87 
88 INTERFACE prism_terminate
89 MODULE PROCEDURE prism_dummy_terminate
90 END INTERFACE
91 
93 MODULE PROCEDURE prism_dummy_get_localcomm
94 END INTERFACE
95 
96 INTERFACE prism_def_var
97 MODULE PROCEDURE prism_dummy_def_var
98 END INTERFACE
99 
100 INTERFACE prism_def_grid
101 MODULE PROCEDURE prism_dummy_def_grid
102 END INTERFACE
103 
104 
106 MODULE PROCEDURE prism_dummy_def_partition
107 END INTERFACE
108 
109 
111 MODULE PROCEDURE prism_dummy_reducedgrid_map
112 END INTERFACE
113 
115 MODULE PROCEDURE prism_dummy_set_corners
116 END INTERFACE
117 
118 
120 MODULE PROCEDURE prism_dummy_calc_newdate
121 END INTERFACE
122 
123 
124 
125 
126 !**************************************************************************
127 CONTAINS
128 
129 SUBROUTINE prism_dummy_set_points_gridless (METHOD_ID, POINT_NAME, GRID_ID, &
130  & NEW_POINTS, IERROR)
131  CHARACTER (LEN=*), INTENT(IN) :: POINT_NAME
132  INTEGER(KIND=JPIM), INTENT(IN) :: GRID_ID
133  LOGICAL, INTENT(IN) :: NEW_POINTS
134  INTEGER(KIND=JPIM), INTENT(INOUT) :: METHOD_ID
135  INTEGER(KIND=JPIM), INTENT(OUT) :: IERROR
136 #ifdef SFX_MPI
137  CALL mpl_abort('ABORT PRISM_DUMMY')
138 #endif
139 
140 END SUBROUTINE prism_dummy_set_points_gridless
141 
142 !**************************************************************************
143 
144 SUBROUTINE prism_dummy_set_points_3d_dble(METHOD_ID, POINT_NAME, GRID_ID, &
145  & POINTS_ACTUAL_SHAPE, POINTS_1ST_ARRAY, POINTS_2ND_ARRAY, &
146  & POINTS_3RD_ARRAY, NEW_POINTS, IERROR)
147  CHARACTER (LEN=*), INTENT(IN) :: POINT_NAME
148  INTEGER(KIND=JPIM), INTENT(IN) :: GRID_ID
149  INTEGER(KIND=JPIM), INTENT(INOUT) :: METHOD_ID
150  REAL(KIND=JPRD), INTENT(IN), DIMENSION (:) :: POINTS_1ST_ARRAY, POINTS_2ND_ARRAY, POINTS_3RD_ARRAY
151  INTEGER(KIND=JPIM), INTENT(IN) :: POINTS_ACTUAL_SHAPE (2, *)
152  LOGICAL, INTENT(IN) :: NEW_POINTS
153  INTEGER(KIND=JPIM), INTENT(OUT) :: IERROR
154 
155  CALL mpl_abort('ABORT PRISM_DUMMY')
156 
157 END SUBROUTINE prism_dummy_set_points_3d_dble
158 
159 !**************************************************************************
160 
161 SUBROUTINE prism_dummy_init ( APPL_NAME, IERROR )
162  CHARACTER (LEN=*), INTENT(IN) :: APPL_NAME
163  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
164 
165  stop 'ABORT PRISM_DUMMY'
166 
167 END SUBROUTINE prism_dummy_init
168 
169 !**************************************************************************
170 
171 SUBROUTINE prism_dummy_init_comp ( COMP_ID, COMP_NAME, IERROR )
172  CHARACTER (LEN=*), INTENT(IN) :: COMP_NAME
173  INTEGER(KIND=JPIM), INTENT (OUT) :: COMP_ID, IERROR
174 
175  CALL mpl_abort('ABORT PRISM_DUMMY')
176 
177 END SUBROUTINE prism_dummy_init_comp
178 
179 !**************************************************************************
180 
181 SUBROUTINE prism_dummy_enddef ( IERROR )
182  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
183 
184  CALL mpl_abort('ABORT PRISM_DUMMY')
185 
186 END SUBROUTINE prism_dummy_enddef
187 
188 !**************************************************************************
189 
190 SUBROUTINE prism_dummy_terminate ( IERROR )
191  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
192 
193  CALL mpl_abort('ABORT PRISM_DUMMY')
194 
195 END SUBROUTINE prism_dummy_terminate
196 
197 !**************************************************************************
198 
199 SUBROUTINE prism_dummy_get_localcomm ( COMP_ID, LOCAL_COMM, IERROR )
200  INTEGER(KIND=JPIM), INTENT (IN) :: COMP_ID
201  INTEGER(KIND=JPIM), INTENT (OUT) :: LOCAL_COMM, IERROR
202 
203  CALL mpl_abort('ABORT PRISM_DUMMY')
204 
205 END SUBROUTINE prism_dummy_get_localcomm
206 
207 !**************************************************************************
208 
209 SUBROUTINE prism_dummy_def_var (VAR_ID, NAME, GRID_ID, METHOD_ID, MASK_ID, &
210  & VAR_NODIMS, VAR_ACTUAL_SHAPE, VAR_TYPE, IERROR )
211  INTEGER(KIND=JPIM), INTENT(OUT) :: VAR_ID
212  CHARACTER (LEN=*), INTENT(IN) :: NAME
213  INTEGER(KIND=JPIM), INTENT(IN) :: GRID_ID
214  INTEGER(KIND=JPIM), INTENT(IN) :: METHOD_ID
215  INTEGER(KIND=JPIM), INTENT(IN) :: MASK_ID
216  INTEGER(KIND=JPIM), INTENT(IN) :: VAR_NODIMS(2)
217  INTEGER(KIND=JPIM), INTENT(IN) :: VAR_ACTUAL_SHAPE(1:2, 1:var_nodims(1)+var_nodims(2))
218  INTEGER(KIND=JPIM), INTENT(IN) :: VAR_TYPE
219  INTEGER(KIND=JPIM), INTENT(OUT) :: IERROR
220 
221  CALL mpl_abort('ABORT PRISM_DUMMY')
222  END SUBROUTINE prism_dummy_def_var
223 
224 !**************************************************************************
225 
226 SUBROUTINE prism_dummy_def_grid ( GRID_ID, GRID_NAME, COMP_ID, GRID_VALID_SHAPE, &
227  & GRID_TYPE, IERROR)
228  CHARACTER(LEN=*), INTENT(IN) :: GRID_NAME
229  INTEGER(KIND=JPIM), INTENT(IN) :: COMP_ID
230  INTEGER(KIND=JPIM), INTENT(IN) :: GRID_VALID_SHAPE (2, *)
231  INTEGER(KIND=JPIM), INTENT(IN) :: GRID_TYPE
232  INTEGER(KIND=JPIM), INTENT(OUT) :: GRID_ID, IERROR
233 
234  CALL mpl_abort('ABORT PRISM_DUMMY')
235 
236 END SUBROUTINE prism_dummy_def_grid
237 
238 !**************************************************************************
239 
240 SUBROUTINE prism_dummy_def_partition ( GRID_ID, NBR_BLOCKS, &
241  & PARTITION_ARRAY, EXTENT_ARRAY, IERROR )
242  INTEGER(KIND=JPIM), INTENT (IN) :: GRID_ID
243  INTEGER(KIND=JPIM), INTENT (IN) :: NBR_BLOCKS
244  INTEGER(KIND=JPIM), INTENT (IN) :: PARTITION_ARRAY(1:nbr_blocks,*)
245  INTEGER(KIND=JPIM), INTENT (IN) :: EXTENT_ARRAY(1:nbr_blocks,*)
246  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
247 
248  CALL mpl_abort('ABORT PRISM_DUMMY')
249 
250 END SUBROUTINE prism_dummy_def_partition
251 
252 !**************************************************************************
253 
254 SUBROUTINE prism_dummy_reducedgrid_map( GRID_ID, NBR_LATITUDES, &
255  & NBR_POINTS_PER_LAT, IERROR )
256  INTEGER(KIND=JPIM), INTENT (IN) :: GRID_ID
257  INTEGER(KIND=JPIM), INTENT (IN) :: NBR_LATITUDES
258  INTEGER(KIND=JPIM), INTENT (IN) :: NBR_POINTS_PER_LAT(nbr_latitudes)
259  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
260 
261  CALL mpl_abort('ABORT PRISM_DUMMY')
262 
263 END SUBROUTINE prism_dummy_reducedgrid_map
264 
265 !**************************************************************************
266 
267 SUBROUTINE prism_dummy_set_corners(GRID_ID, NBR_CORNERS, CORNERS_ACTUAL_SHAPE, &
268  & CORNERS_1ST_ARRAY, CORNERS_2ND_ARRAY, CORNERS_3RD_ARRAY, IERROR)
269  INTEGER(KIND=JPIM), INTENT (IN) :: GRID_ID
270  INTEGER(KIND=JPIM), INTENT (IN) :: NBR_CORNERS
271  REAL(KIND=JPRD), INTENT (IN) :: CORNERS_1ST_ARRAY (:,:)
272  REAL(KIND=JPRD), INTENT (IN) :: CORNERS_2ND_ARRAY (:,:)
273  REAL(KIND=JPRD), INTENT (IN) :: CORNERS_3RD_ARRAY (:,:)
274  INTEGER(KIND=JPIM), INTENT (IN) :: CORNERS_ACTUAL_SHAPE (1:2, *)
275  INTEGER(KIND=JPIM), INTENT(OUT) :: IERROR
276 
277  CALL mpl_abort('ABORT PRISM_DUMMY')
278 END SUBROUTINE prism_dummy_set_corners
279 
280 !**************************************************************************
281 
282 SUBROUTINE prism_dummy_calc_newdate ( DATE, DATE_INCR, IERROR )
283  REAL(KIND=JPRD), INTENT(IN) :: DATE_INCR
284  type(prism_time_struct), INTENT(INOUT) :: date
285  INTEGER(KIND=JPIM), INTENT(OUT) :: IERROR
286 
287  CALL mpl_abort('ABORT PRISM_DUMMY')
288 END SUBROUTINE prism_dummy_calc_newdate
289 
290 !**************************************************************************
291 
292 SUBROUTINE prism_dummy_put ( FIELD_ID, DATE, DATE_BOUNDS, DATA_ARRAY, INFO, IERROR )
293  INTEGER(KIND=JPIM), INTENT (IN) :: FIELD_ID
294  TYPE(prism_time_struct), INTENT (IN) :: DATE
295  TYPE(prism_time_struct), INTENT (IN) :: DATE_BOUNDS(2)
296  DOUBLE PRECISION, INTENT (IN) :: DATA_ARRAY(:,:)
297  INTEGER(KIND=JPIM), INTENT (OUT) :: INFO
298  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
299 
300  CALL mpl_abort('ABORT PRISM_DUMMY')
301 
302 END SUBROUTINE prism_dummy_put
303 
304 !**************************************************************************
305 
306 SUBROUTINE prism_dummy_get ( FIELD_ID, DATE, DATE_BOUNDS, DATA_ARRAY, INFO, IERROR )
307  INTEGER(KIND=JPIM), INTENT (IN) :: FIELD_ID
308  TYPE(prism_time_struct), INTENT (IN) :: DATE
309  TYPE(prism_time_struct), INTENT (IN) :: DATE_BOUNDS(2)
310  DOUBLE PRECISION, INTENT (OUT) :: DATA_ARRAY(:,:)
311  INTEGER(KIND=JPIM), INTENT (OUT) :: INFO
312  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
313 
314  CALL mpl_abort('ABORT PRISM_DUMMY')
315 END SUBROUTINE prism_dummy_get
316 
317 !**************************************************************************
318 
319 SUBROUTINE prism_dummy_initialized ( FLAG, IERROR )
320  LOGICAL, INTENT (OUT) :: FLAG
321  INTEGER(KIND=JPIM), INTENT (OUT) :: IERROR
322 
323  CALL mpl_abort('ABORT PRISM_DUMMY')
324 END SUBROUTINE prism_dummy_initialized
325 END MODULE prism_dummy_mod
subroutine prism_dummy_initialized(FLAG, IERROR)
subroutine prism_dummy_def_grid(GRID_ID, GRID_NAME, COMP_ID, GRID_VALID_SHAPE, GRID_TYPE, IERROR)
integer, parameter jpim
Definition: parkind1.F90:13
integer, parameter jprd
Definition: parkind1.F90:39
subroutine prism_dummy_put(FIELD_ID, DATE, DATE_BOUNDS, DATA_ARRAY, INFO, IERROR)
subroutine prism_dummy_init_comp(COMP_ID, COMP_NAME, IERROR)
subroutine prism_dummy_set_points_3d_dble(METHOD_ID, POINT_NAME, GRID_ID, POINTS_ACTUAL_SHAPE, POINTS_1ST_ARRAY, POINTS_2ND_ARRAY, POINTS_3RD_ARRAY, NEW_POINTS, IERROR)
subroutine prism_dummy_get(FIELD_ID, DATE, DATE_BOUNDS, DATA_ARRAY, INFO, IERROR)
subroutine prism_dummy_set_points_gridless(METHOD_ID, POINT_NAME, GRID_ID, NEW_POINTS, IERROR)
subroutine prism_dummy_init(APPL_NAME, IERROR)
subroutine prism_dummy_reducedgrid_map(GRID_ID, NBR_LATITUDES, NBR_POINTS_PER_LAT, IERROR)
subroutine prism_dummy_get_localcomm(COMP_ID, LOCAL_COMM, IERROR)
subroutine prism_dummy_terminate(IERROR)
subroutine prism_dummy_set_corners(GRID_ID, NBR_CORNERS, CORNERS_ACTUAL_SHAPE, CORNERS_1ST_ARRAY, CORNERS_2ND_ARRAY, CORNERS_3RD_ARRAY, IERROR)
subroutine prism_dummy_calc_newdate(DATE, DATE_INCR, IERROR)
subroutine prism_dummy_def_var(VAR_ID, NAME, GRID_ID, METHOD_ID, MASK_ID, VAR_NODIMS, VAR_ACTUAL_SHAPE, VAR_TYPE, IERROR)
subroutine prism_dummy_def_partition(GRID_ID, NBR_BLOCKS, PARTITION_ARRAY, EXTENT_ARRAY, IERROR)
subroutine prism_dummy_enddef(IERROR)