SURFEX v8.1
General documentation of Surfex
read_buffer.F90
Go to the documentation of this file.
1 !SFX_LIC Copyright 1994-2014 CNRS, Meteo-France and Universite Paul Sabatier
2 !SFX_LIC This is part of the SURFEX software governed by the CeCILL-C licence
3 !SFX_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
4 !SFX_LIC for details. version 1.
5 ! #######################
7 ! #######################
8 INTERFACE read_buffer
9 !
10  SUBROUTINE read_bufx1(HNAME,PFIELD,KRET)
11  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
12 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD ! array containing the data field
13 INTEGER, INTENT(OUT) :: KRET ! error code
14 !
15 END SUBROUTINE read_bufx1
16 !
17  SUBROUTINE read_bufx0(HNAME,PFIELD,KRET)
18  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
19 REAL, INTENT(OUT) :: PFIELD ! array containing the data field
20 INTEGER, INTENT(OUT) :: KRET ! error code
21 !
22 END SUBROUTINE read_bufx0
23 !
24  SUBROUTINE read_bufn0(HNAME,KFIELD,KRET)
25  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
26 INTEGER, INTENT(OUT) :: KFIELD ! array containing the data field
27 INTEGER, INTENT(OUT) :: KRET ! error code
28 !
29 END SUBROUTINE read_bufn0
30 !
31  SUBROUTINE read_bufn1(HNAME,KFIELD,KRET)
32  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
33 INTEGER, DIMENSION(:), INTENT(OUT) :: KFIELD ! array containing the data field
34 INTEGER, INTENT(OUT) :: KRET ! error code
35 !
36 END SUBROUTINE read_bufn1
37 !
38  SUBROUTINE read_bufc0(HNAME,HFIELD,KRET)
39  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
40  CHARACTER(LEN=*), INTENT(OUT) :: HFIELD ! array containing the data field
41 INTEGER, INTENT(OUT) :: KRET ! error code
42 !
43 END SUBROUTINE read_bufc0
44 !
45 END INTERFACE
46 END MODULE modi_read_buffer
47 ! #######################################################
48  SUBROUTINE read_bufc0(HNAME,HFIELD,KRET)
49 ! #######################################################
50 !
51 !!**** *READ_BUFC0* - routine to read a character (LEN=6) in a buffer from SURFEX
52 !!
53 !! PURPOSE
54 !! -------
55 !!
56 !!** METHOD
57 !! ------
58 !!
59 !! EXTERNAL
60 !! --------
61 !!
62 !!
63 !! IMPLICIT ARGUMENTS
64 !! ------------------
65 !!
66 !! REFERENCE
67 !! ---------
68 !!
69 !!
70 !! AUTHOR
71 !! ------
72 !! S.Malardel *Meteo France*
73 !!
74 !! MODIFICATIONS
75 !! -------------
76 !! Original 03/2005
77 !-------------------------------------------------------------------------------
78 !
79 !* 0. DECLARATIONS
80 ! ------------
81 !
82 !
83 USE modi_get_luout
84 !
85 !
86 USE yomhook ,ONLY : lhook, dr_hook
87 USE parkind1 ,ONLY : jprb
88 !
89 IMPLICIT NONE
90 !
91 #ifdef SFX_ARO
92 #include "get_bufc0.h"
93 #endif
94 !
95 !* 0.1 Declarations of arguments
96 ! -------------------------
97 !
98  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
99  CHARACTER(LEN=*), INTENT(OUT) :: HFIELD ! array containing the data field
100 INTEGER, INTENT(OUT) :: KRET ! error code
101 !
102 !
103 !* 0.2 Declarations of local variables
104 ! -------------------------------
105 !
106 INTEGER :: ILUOUT ! Listing file number
107 REAL(KIND=JPRB) :: ZHOOK_HANDLE
108 !
109 !-------------------------------------------------------------------------------
110 !
111 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFC0',0,zhook_handle)
112  CALL get_luout('AROME ',iluout)
113 !
114 #ifdef SFX_ARO
115  CALL get_bufc0(hname,hfield,len(hfield),kret)
116 #endif
117 !
118 IF (kret /=0) THEN
119  WRITE(iluout,*) ' '
120  WRITE(iluout,*) 'ERROR'
121  WRITE(iluout,*) '-------'
122  WRITE(iluout,*) ' '
123  WRITE(iluout,*) 'error when de-burrering article', hname,' KRET=',kret
124  WRITE(iluout,*) ' '
125 ENDIF
126 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFC0',1,zhook_handle)
127 !
128 END SUBROUTINE read_bufc0
129 ! #######################################################
130  SUBROUTINE read_bufn0(HNAME,KFIELD,KRET)
131 ! #######################################################
132 !
133 !!**** *READ_BUFN0* - routine to read an integer in a buffer from SURFEX
134 !!
135 !! PURPOSE
136 !! -------
137 !!
138 !!** METHOD
139 !! ------
140 !!
141 !! EXTERNAL
142 !! --------
143 !!
144 !!
145 !! IMPLICIT ARGUMENTS
146 !! ------------------
147 !!
148 !! REFERENCE
149 !! ---------
150 !!
151 !!
152 !! AUTHOR
153 !! ------
154 !! S.Malardel *Meteo France*
155 !!
156 !! MODIFICATIONS
157 !! -------------
158 !! Original 03/2005
159 !-------------------------------------------------------------------------------
160 !
161 !* 0. DECLARATIONS
162 ! ------------
163 !
164 !
165 USE modi_get_luout
166 !
167 !
168 USE yomhook ,ONLY : lhook, dr_hook
169 USE parkind1 ,ONLY : jprb
170 !
171 IMPLICIT NONE
172 !
173 #ifdef SFX_ARO
174 #include "get_bufn0.h"
175 #endif
176 !
177 !* 0.1 Declarations of arguments
178 ! -------------------------
179 !
180  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
181 INTEGER, INTENT(OUT) :: KFIELD ! array containing the data field
182 INTEGER, INTENT(OUT) :: KRET ! error code
183 !
184 !
185 !* 0.2 Declarations of local variables
186 ! -------------------------------
187 !
188 INTEGER :: ILUOUT ! Listing file number
189 REAL(KIND=JPRB) :: ZHOOK_HANDLE
190 !
191 !-------------------------------------------------------------------------------
192 !
193 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFN0',0,zhook_handle)
194  CALL get_luout('AROME ',iluout)
195 !
196 #ifdef SFX_ARO
197  CALL get_bufn0(hname,kfield,kret)
198 #endif
199 !
200 IF (kret /=0) THEN
201  WRITE(iluout,*) ' '
202  WRITE(iluout,*) 'ERROR'
203  WRITE(iluout,*) '-------'
204  WRITE(iluout,*) ' '
205  WRITE(iluout,*) 'error when de-burrering article', hname,' KRET=',kret
206  WRITE(iluout,*) ' '
207 ENDIF
208 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFN0',1,zhook_handle)
209 !
210 END SUBROUTINE read_bufn0
211 ! #######################################################
212  SUBROUTINE read_bufn1(HNAME,KFIELD,KRET)
213 ! #######################################################
214 !
215 !!**** *READ_BUFN1* - routine to read a 1D integer array in a buffer from SURFEX
216 !!
217 !! PURPOSE
218 !! -------
219 !!
220 !!** METHOD
221 !! ------
222 !!
223 !! EXTERNAL
224 !! --------
225 !!
226 !!
227 !! IMPLICIT ARGUMENTS
228 !! ------------------
229 !!
230 !! REFERENCE
231 !! ---------
232 !!
233 !!
234 !! AUTHOR
235 !! ------
236 !! S.Malardel *Meteo France*
237 !!
238 !! MODIFICATIONS
239 !! -------------
240 !! Original 03/2005
241 !-------------------------------------------------------------------------------
242 !
243 !* 0. DECLARATIONS
244 ! ------------
245 !
246 !
247 USE modi_get_luout
248 !
249 !
250 USE yomhook ,ONLY : lhook, dr_hook
251 USE parkind1 ,ONLY : jprb
252 !
253 IMPLICIT NONE
254 !
255 #ifdef SFX_ARO
256 #include "get_bufn1.h"
257 #endif
258 !
259 !* 0.1 Declarations of arguments
260 ! -------------------------
261 !
262  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
263 INTEGER, DIMENSION(:), INTENT(OUT) :: KFIELD ! array containing the data field
264 INTEGER, INTENT(OUT) :: KRET ! error code
265 !
266 !
267 !* 0.2 Declarations of local variables
268 ! -------------------------------
269 !
270 INTEGER :: ILUOUT ! Listing file number
271 REAL(KIND=JPRB) :: ZHOOK_HANDLE
272 !
273 !-------------------------------------------------------------------------------
274 !
275 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFN1',0,zhook_handle)
276  CALL get_luout('AROME ',iluout)
277 !
278 #ifdef SFX_ARO
279  CALL get_bufn1(hname,SIZE(kfield),kfield,kret)
280 #endif
281 !
282 IF (kret /=0) THEN
283  WRITE(iluout,*) ' '
284  WRITE(iluout,*) 'ERROR'
285  WRITE(iluout,*) '-------'
286  WRITE(iluout,*) ' '
287  WRITE(iluout,*) 'error when de-burrering article', hname,' KRET=',kret
288  WRITE(iluout,*) ' '
289 ENDIF
290 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFN1',1,zhook_handle)
291 !
292 END SUBROUTINE read_bufn1
293 ! #######################################################
294  SUBROUTINE read_bufx0(HNAME,PFIELD,KRET)
295 ! #######################################################
296 !
297 !!**** *READ_BUFX0* - routine to read a real in a buffer from SURFEX
298 !!
299 !! PURPOSE
300 !! -------
301 !!
302 !!** METHOD
303 !! ------
304 !!
305 !! EXTERNAL
306 !! --------
307 !!
308 !!
309 !! IMPLICIT ARGUMENTS
310 !! ------------------
311 !!
312 !! REFERENCE
313 !! ---------
314 !!
315 !!
316 !! AUTHOR
317 !! ------
318 !! S.Malardel *Meteo France*
319 !!
320 !! MODIFICATIONS
321 !! -------------
322 !! Original 03/2005
323 !-------------------------------------------------------------------------------
324 !
325 !* 0. DECLARATIONS
326 ! ------------
327 !
328 !
329 USE modi_get_luout
330 !
331 !
332 USE yomhook ,ONLY : lhook, dr_hook
333 USE parkind1 ,ONLY : jprb
334 !
335 IMPLICIT NONE
336 !
337 #ifdef SFX_ARO
338 #include "get_bufx0.h"
339 #endif
340 !
341 !* 0.1 Declarations of arguments
342 ! -------------------------
343 !
344  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
345 REAL, INTENT(OUT) :: PFIELD ! array containing the data field
346 INTEGER, INTENT(OUT) :: KRET ! error code
347 !
348 !
349 !* 0.2 Declarations of local variables
350 ! -------------------------------
351 !
352 INTEGER :: ILUOUT ! Listing file number
353 REAL(KIND=JPRB) :: ZHOOK_HANDLE
354 !
355 !-------------------------------------------------------------------------------
356 !
357 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFX0',0,zhook_handle)
358  CALL get_luout('AROME ',iluout)
359 !
360 #ifdef SFX_ARO
361  CALL get_bufx0(hname,pfield,kret)
362 #endif
363 !
364 IF (kret /=0) THEN
365  WRITE(iluout,*) ' '
366  WRITE(iluout,*) 'ERROR'
367  WRITE(iluout,*) '-------'
368  WRITE(iluout,*) ' '
369  WRITE(iluout,*) 'error when de-burrering article', hname,' KRET=',kret
370  WRITE(iluout,*) ' '
371 ENDIF
372 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFX0',1,zhook_handle)
373 !
374 END SUBROUTINE read_bufx0
375 ! #######################################################
376  SUBROUTINE read_bufx1(HNAME,PFIELD,KRET)
377 ! #######################################################
378 !
379 !!**** *READ_BUFX1* - routine to read a 1D real array in a buffer from SURFEX
380 !!
381 !! PURPOSE
382 !! -------
383 !!
384 !!** METHOD
385 !! ------
386 !!
387 !! EXTERNAL
388 !! --------
389 !!
390 !!
391 !! IMPLICIT ARGUMENTS
392 !! ------------------
393 !!
394 !! REFERENCE
395 !! ---------
396 !!
397 !!
398 !! AUTHOR
399 !! ------
400 !! S.Malardel *Meteo France*
401 !!
402 !! MODIFICATIONS
403 !! -------------
404 !! Original 03/2005
405 !-------------------------------------------------------------------------------
406 !
407 !* 0. DECLARATIONS
408 ! ------------
409 !
410 !
411 USE modi_get_luout
412 !
413 !
414 USE yomhook ,ONLY : lhook, dr_hook
415 USE parkind1 ,ONLY : jprb
416 !
417 IMPLICIT NONE
418 !
419 #ifdef SFX_ARO
420 #include "get_bufx1.h"
421 #endif
422 !
423 !* 0.1 Declarations of arguments
424 ! -------------------------
425 !
426  CHARACTER(LEN=*), INTENT(IN) :: HNAME ! name of field
427 REAL, DIMENSION(:), INTENT(OUT) :: PFIELD ! array containing the data field
428 INTEGER, INTENT(OUT) :: KRET ! error code
429 !
430 !
431 !* 0.2 Declarations of local variables
432 ! -------------------------------
433 !
434 INTEGER :: ILUOUT ! Listing file number
435 REAL(KIND=JPRB) :: ZHOOK_HANDLE
436 !
437 !-------------------------------------------------------------------------------
438 !
439 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFX1',0,zhook_handle)
440  CALL get_luout('AROME ',iluout)
441 !
442 #ifdef SFX_ARO
443  CALL get_bufx1(hname,SIZE(pfield),pfield,kret)
444 #endif
445 !
446 IF (kret /=0) THEN
447  WRITE(iluout,*) ' '
448  WRITE(iluout,*) 'ERROR'
449  WRITE(iluout,*) '-------'
450  WRITE(iluout,*) ' '
451  WRITE(iluout,*) 'error when de-burrering article', hname,' KRET=',kret
452  WRITE(iluout,*) ' '
453 ENDIF
454 IF (lhook) CALL dr_hook('MODI_READ_BUFFER:READ_BUFX1',1,zhook_handle)
455 !
456 END SUBROUTINE read_bufx1
subroutine read_bufn0(HNAME, KFIELD, KRET)
subroutine read_bufn1(HNAME, KFIELD, KRET)
subroutine read_bufx1(HNAME, PFIELD, KRET)
integer, parameter jprb
Definition: parkind1.F90:32
subroutine read_bufc0(HNAME, HFIELD, KRET)
Definition: read_buffer.F90:49
subroutine get_luout(HPROGRAM, KLUOUT)
Definition: get_luout.F90:7
logical lhook
Definition: yomhook.F90:15
subroutine read_bufx0(HNAME, PFIELD, KRET)