SURFEX v8.1
General documentation of Surfex
test_nam_var_surf.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 !
10 !
11  SUBROUTINE test_nam_varc0_surf(KLUOUT,HNAME,HVAR, &
12  HVALUE1,HVALUE2,HVALUE3, &
13  HVALUE4,HVALUE5,HVALUE6, &
14  HVALUE7,HVALUE8,HVALUE9, &
15  HVALUE10 )
16 !
17 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
18  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
19  CHARACTER(LEN=*) ,INTENT(IN) ::HVAR ! variable to test
20 
21  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE1 ! first possible value
22  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE2 ! second possible value
23  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE3 ! third possible value
24  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE4 ! fourth possible value
25  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE5 ! fiveth possible value
26  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE6 ! sixth possible value
27  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE7 ! seventh possible value
28  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE8 ! eightth possible value
29  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE9 ! nineth possible value
30  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE10 ! tenth possible value
31 !
32 END SUBROUTINE test_nam_varc0_surf
33 !
34  SUBROUTINE test_nam_varl0_surf(KLUOUT,HNAME,OVAR,OVALUE)
35 !
36 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
37  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
38 LOGICAL ,INTENT(IN) ::OVAR ! variable to test
39 
40 LOGICAL ,INTENT(IN), OPTIONAL ::OVALUE ! possible value
41 !
42 END SUBROUTINE test_nam_varl0_surf
43 !
44  SUBROUTINE test_nam_varn0_surf(KLUOUT,HNAME,KVAR, &
45  KVALUE1,KVALUE2,KVALUE3, &
46  KVALUE4,KVALUE5,KVALUE6, &
47  KVALUE7,KVALUE8,KVALUE9, &
48  KVALUE10 )
49 !
50 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
51  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
52 INTEGER ,INTENT(IN) ::KVAR ! variable to test
53 
54 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE1 ! first possible value
55 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE2 ! second possible value
56 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE3 ! third possible value
57 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE4 ! fourth possible value
58 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE5 ! fiveth possible value
59 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE6 ! sixth possible value
60 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE7 ! seventh possible value
61 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE8 ! eightth possible value
62 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE9 ! nineth possible value
63 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE10 ! 10th possible value
64 !
65 END SUBROUTINE test_nam_varn0_surf
66 !
67  SUBROUTINE test_nam_varx0_surf(KLUOUT,HNAME,PVAR, &
68  PVALUE1,PVALUE2,PVALUE3, &
69  PVALUE4,PVALUE5,PVALUE6, &
70  PVALUE7,PVALUE8,PVALUE9, &
71  PVALUE10 )
72 !
73 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
74  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
75 REAL ,INTENT(IN) ::PVAR ! variable to test
76 
77 REAL ,INTENT(IN), OPTIONAL ::PVALUE1 ! first possible value
78 REAL ,INTENT(IN), OPTIONAL ::PVALUE2 ! second possible value
79 REAL ,INTENT(IN), OPTIONAL ::PVALUE3 ! third possible value
80 REAL ,INTENT(IN), OPTIONAL ::PVALUE4 ! fourth possible value
81 REAL ,INTENT(IN), OPTIONAL ::PVALUE5 ! fiveth possible value
82 REAL ,INTENT(IN), OPTIONAL ::PVALUE6 ! sixth possible value
83 REAL ,INTENT(IN), OPTIONAL ::PVALUE7 ! seventh possible value
84 REAL ,INTENT(IN), OPTIONAL ::PVALUE8 ! eightth possible value
85 REAL ,INTENT(IN), OPTIONAL ::PVALUE9 ! nineth possible value
86 REAL ,INTENT(IN), OPTIONAL ::PVALUE10 ! 10th possible value
87 !
88 END SUBROUTINE test_nam_varx0_surf
89 !
90 END INTERFACE
91 !
92 END MODULE modi_test_nam_var_surf
93 !
94 !
95 ! #########################################################
96  SUBROUTINE test_nam_varc0_surf(KLUOUT,HNAME,HVAR, &
97  HVALUE1,HVALUE2,HVALUE3, &
98  HVALUE4,HVALUE5,HVALUE6, &
99  HVALUE7,HVALUE8,HVALUE9, &
100  HVALUE10 )
101 ! #########################################################
102 !
103 !!**** *TEST_NAM_VARC0* - routine to test the value of a character var.
104 !!
105 !! PURPOSE
106 !! -------
107 !
108 !
109 !!** METHOD
110 !! ------
111 !!
112 !! EXTERNAL
113 !! --------
114 !!
115 !! FM_READ
116 !!
117 !! IMPLICIT ARGUMENTS
118 !! ------------------
119 !!
120 !!
121 !! REFERENCE
122 !! ---------
123 !!
124 !!
125 !! AUTHOR
126 !! ------
127 !!
128 !! V. MASSON *METEO-FRANCE*
129 !!
130 !! MODIFICATIONS
131 !! -------------
132 !!
133 !! original 17/04/98
134 !----------------------------------------------------------------------------
135 !
136 !* 0. DECLARATIONS
137 ! ------------
138 !
139 !
140 USE yomhook ,ONLY : lhook, dr_hook
141 USE parkind1 ,ONLY : jprb
142 !
143 USE modi_abor1_sfx
144 !
145 IMPLICIT NONE
146 !
147 !* 0.1 Declarations of arguments
148 !
149 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
150  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
151  CHARACTER(LEN=*) ,INTENT(IN) ::HVAR ! variable to test
152 
153  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE1 ! first possible value
154  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE2 ! second possible value
155  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE3 ! third possible value
156  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE4 ! fourth possible value
157  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE5 ! fiveth possible value
158  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE6 ! sixth possible value
159  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE7 ! seventh possible value
160  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE8 ! eightth possible value
161  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE9 ! nineth possible value
162  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE10 ! 10th possible value
163 REAL(KIND=JPRB) :: ZHOOK_HANDLE
164 !
165 !* 0.2 Declarations of local variables
166 !
167 !
168 !-------------------------------------------------------------------------------
169 !
170 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',0,zhook_handle)
171 IF ( PRESENT (hvalue1) ) THEN
172  IF ( hvar==hvalue1 .AND. lhook) &
173  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
174  IF ( hvar==hvalue1 ) RETURN
175 END IF
176 !
177 IF ( PRESENT (hvalue2) ) THEN
178  IF ( hvar==hvalue2 .AND. lhook) &
179  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
180  IF ( hvar==hvalue2 ) RETURN
181 END IF
182 !
183 IF ( PRESENT (hvalue3) ) THEN
184  IF ( hvar==hvalue3 .AND. lhook) &
185  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
186  IF ( hvar==hvalue3 ) RETURN
187 END IF
188 !
189 IF ( PRESENT (hvalue4) ) THEN
190  IF ( hvar==hvalue4 .AND. lhook) &
191  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
192  IF ( hvar==hvalue4 ) RETURN
193 END IF
194 !
195 IF ( PRESENT (hvalue5) ) THEN
196  IF ( hvar==hvalue5 .AND. lhook) &
197  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
198  IF ( hvar==hvalue5 ) RETURN
199 END IF
200 !
201 IF ( PRESENT (hvalue6) ) THEN
202  IF ( hvar==hvalue6 .AND. lhook) &
203  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
204  IF ( hvar==hvalue6 ) RETURN
205 END IF
206 !
207 IF ( PRESENT (hvalue7) ) THEN
208  IF ( hvar==hvalue7 .AND. lhook) &
209  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
210  IF ( hvar==hvalue7 ) RETURN
211 END IF
212 !
213 IF ( PRESENT (hvalue8) ) THEN
214  IF ( hvar==hvalue8 .AND. lhook) &
215  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
216  IF ( hvar==hvalue8 ) RETURN
217 END IF
218 !
219 IF ( PRESENT (hvalue9) ) THEN
220  IF ( hvar==hvalue9 .AND. lhook) &
221  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
222  IF ( hvar==hvalue9 ) RETURN
223 END IF
224 !
225 IF ( PRESENT (hvalue10) ) THEN
226  IF ( hvar==hvalue10 .AND. lhook) &
227  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
228  IF ( hvar==hvalue10 ) RETURN
229 END IF
230 !
231 !-------------------------------------------------------------------------------
232 !
233 WRITE (kluout,*) ' '
234 WRITE (kluout,*) 'FATAL ERROR:'
235 WRITE (kluout,*) '-----------'
236 WRITE (kluout,*) ' '
237 WRITE (kluout,*) 'Value "',hvar,'" is not allowed for variable ',hname
238 WRITE (kluout,*) ' '
239 WRITE (kluout,*) 'Possible values are:'
240 IF ( PRESENT (hvalue1) ) WRITE (kluout,*) '"',hvalue1,'"'
241 IF ( PRESENT (hvalue2) ) WRITE (kluout,*) '"',hvalue2,'"'
242 IF ( PRESENT (hvalue3) ) WRITE (kluout,*) '"',hvalue3,'"'
243 IF ( PRESENT (hvalue4) ) WRITE (kluout,*) '"',hvalue4,'"'
244 IF ( PRESENT (hvalue5) ) WRITE (kluout,*) '"',hvalue5,'"'
245 IF ( PRESENT (hvalue6) ) WRITE (kluout,*) '"',hvalue6,'"'
246 IF ( PRESENT (hvalue7) ) WRITE (kluout,*) '"',hvalue7,'"'
247 IF ( PRESENT (hvalue8) ) WRITE (kluout,*) '"',hvalue8,'"'
248 IF ( PRESENT (hvalue9) ) WRITE (kluout,*) '"',hvalue9,'"'
249 IF ( PRESENT (hvalue10)) WRITE (kluout,*) '"',hvalue10,'"'
250 !
251  CALL abor1_sfx('TEST_NAM_VAR_SURF: (1) CHARACTER VALUE NOT ALLOWED')
252 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARC0_SURF',1,zhook_handle)
253 !-------------------------------------------------------------------------------
254 END SUBROUTINE test_nam_varc0_surf
255 ! #########################################################
256  SUBROUTINE test_nam_varl0_surf(KLUOUT,HNAME,OVAR,OVALUE)
257 ! #########################################################
258 !
259 !!**** *TEST_NAM_VARL0* - routine to test the value of a logical
260 !!
261 !! PURPOSE
262 !! -------
263 !
264 !
265 !!** METHOD
266 !! ------
267 !!
268 !! EXTERNAL
269 !! --------
270 !!
271 !! FM_READ
272 !!
273 !! IMPLICIT ARGUMENTS
274 !! ------------------
275 !!
276 !!
277 !! REFERENCE
278 !! ---------
279 !!
280 !!
281 !! AUTHOR
282 !! ------
283 !!
284 !! P. Le Moigne *METEO-FRANCE*
285 !!
286 !! MODIFICATIONS
287 !! -------------
288 !!
289 !! original 04/07
290 !----------------------------------------------------------------------------
291 !
292 !* 0. DECLARATIONS
293 ! ------------
294 !
295 !
296 USE yomhook ,ONLY : lhook, dr_hook
297 USE parkind1 ,ONLY : jprb
298 !
299 USE modi_abor1_sfx
300 !
301 IMPLICIT NONE
302 !
303 !* 0.1 Declarations of arguments
304 !
305 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
306  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
307 LOGICAL ,INTENT(IN) ::OVAR ! variable to test
308 
309 LOGICAL ,INTENT(IN), OPTIONAL ::OVALUE ! possible value
310 REAL(KIND=JPRB) :: ZHOOK_HANDLE
311 !
312 !* 0.2 Declarations of local variables
313 !
314 !
315 !-------------------------------------------------------------------------------
316 !
317 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARL0_SURF',0,zhook_handle)
318 IF ( PRESENT (ovalue) ) THEN
319  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARL0_SURF',1,zhook_handle)
320  IF ( ( ovar .AND. ovalue ) .OR. ( .NOT.ovar .AND. .NOT.ovalue) .AND. lhook) &
321  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARL0_SURF',1,zhook_handle)
322  IF ( ( ovar .AND. ovalue ) .OR. ( .NOT.ovar .AND. .NOT.ovalue) ) RETURN
323 END IF
324 !
325 !-------------------------------------------------------------------------------
326 !
327 WRITE (kluout,*) ' '
328 WRITE (kluout,*) 'FATAL ERROR:'
329 WRITE (kluout,*) '-----------'
330 WRITE (kluout,*) ' '
331 WRITE (kluout,*) 'Value "',ovar,'" is not allowed for variable ',hname
332 WRITE (kluout,*) ' '
333 WRITE (kluout,*) 'Possible values are:'
334 IF ( PRESENT (ovalue) ) WRITE (kluout,*) '"',ovalue,'"'
335 !
336  CALL abor1_sfx('TEST_NAM_VAR_SURF: (2) LOGICAL VALUE NOT ALLOWED')
337 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARL0_SURF',1,zhook_handle)
338 !-------------------------------------------------------------------------------
339 END SUBROUTINE test_nam_varl0_surf
340 ! #########################################################
341  SUBROUTINE test_nam_varn0_surf(KLUOUT,HNAME,KVAR, &
342  KVALUE1,KVALUE2,KVALUE3, &
343  KVALUE4,KVALUE5,KVALUE6, &
344  KVALUE7,KVALUE8,KVALUE9, &
345  KVALUE10 )
346 ! #########################################################
347 !
348 !!**** *TEST_NAM_VARN0* - routine to test the value of an integer var.
349 !!
350 !! PURPOSE
351 !! -------
352 !
353 !
354 !!** METHOD
355 !! ------
356 !!
357 !! EXTERNAL
358 !! --------
359 !!
360 !! FM_READ
361 !!
362 !! IMPLICIT ARGUMENTS
363 !! ------------------
364 !!
365 !!
366 !! REFERENCE
367 !! ---------
368 !!
369 !!
370 !! AUTHOR
371 !! ------
372 !!
373 !! P. Le Moigne *METEO-FRANCE*
374 !!
375 !! MODIFICATIONS
376 !! -------------
377 !!
378 !! original 04/2007
379 !----------------------------------------------------------------------------
380 !
381 !* 0. DECLARATIONS
382 ! ------------
383 !
384 !
385 USE yomhook ,ONLY : lhook, dr_hook
386 USE parkind1 ,ONLY : jprb
387 !
388 USE modi_abor1_sfx
389 !
390 IMPLICIT NONE
391 !
392 !* 0.1 Declarations of arguments
393 !
394 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
395  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
396 INTEGER ,INTENT(IN) ::KVAR ! variable to test
397 
398 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE1 ! first possible value
399 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE2 ! second possible value
400 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE3 ! third possible value
401 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE4 ! fourth possible value
402 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE5 ! fiveth possible value
403 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE6 ! sixth possible value
404 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE7 ! seventh possible value
405 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE8 ! eightth possible value
406 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE9 ! nineth possible value
407 INTEGER ,INTENT(IN), OPTIONAL ::KVALUE10 ! 10th possible value
408 REAL(KIND=JPRB) :: ZHOOK_HANDLE
409 !
410 !* 0.2 Declarations of local variables
411 !
412 !
413 !-------------------------------------------------------------------------------
414 !
415 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',0,zhook_handle)
416 IF ( PRESENT (kvalue1) ) THEN
417  IF ( kvar==kvalue1 .AND. lhook) &
418  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
419  IF ( kvar==kvalue1 ) RETURN
420 END IF
421 !
422 IF ( PRESENT (kvalue2) ) THEN
423  IF ( kvar==kvalue2 .AND. lhook) &
424  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
425  IF ( kvar==kvalue2 ) RETURN
426 END IF
427 !
428 IF ( PRESENT (kvalue3) ) THEN
429  IF ( kvar==kvalue3 .AND. lhook) &
430  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
431  IF ( kvar==kvalue3 ) RETURN
432 END IF
433 !
434 IF ( PRESENT (kvalue4) ) THEN
435  IF ( kvar==kvalue4 .AND. lhook) &
436  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
437  IF ( kvar==kvalue4 ) RETURN
438 END IF
439 !
440 IF ( PRESENT (kvalue5) ) THEN
441  IF ( kvar==kvalue5 .AND. lhook) &
442  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
443  IF ( kvar==kvalue5 ) RETURN
444 END IF
445 !
446 IF ( PRESENT (kvalue6) ) THEN
447  IF ( kvar==kvalue6 .AND. lhook) &
448  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
449  IF ( kvar==kvalue6 ) RETURN
450 END IF
451 !
452 IF ( PRESENT (kvalue7) ) THEN
453  IF ( kvar==kvalue7 .AND. lhook) &
454  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
455  IF ( kvar==kvalue7 ) RETURN
456 END IF
457 !
458 IF ( PRESENT (kvalue8) ) THEN
459  IF ( kvar==kvalue8 .AND. lhook) &
460  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
461  IF ( kvar==kvalue8 ) RETURN
462 END IF
463 !
464 IF ( PRESENT (kvalue9) ) THEN
465  IF ( kvar==kvalue9 .AND. lhook) &
466  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
467  IF ( kvar==kvalue9 ) RETURN
468 END IF
469 !
470 IF ( PRESENT (kvalue10) ) THEN
471  IF ( kvar==kvalue10 .AND. lhook) &
472  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
473  IF ( kvar==kvalue10 ) RETURN
474 END IF
475 !
476 !-------------------------------------------------------------------------------
477 !
478 WRITE (kluout,*) ' '
479 WRITE (kluout,*) 'FATAL ERROR:'
480 WRITE (kluout,*) '-----------'
481 WRITE (kluout,*) ' '
482 WRITE (kluout,*) 'Value "',kvar,'" is not allowed for variable ',hname
483 WRITE (kluout,*) ' '
484 WRITE (kluout,*) 'Possible values are:'
485 IF ( PRESENT (kvalue1) ) WRITE (kluout,*) '"',kvalue1,'"'
486 IF ( PRESENT (kvalue2) ) WRITE (kluout,*) '"',kvalue2,'"'
487 IF ( PRESENT (kvalue3) ) WRITE (kluout,*) '"',kvalue3,'"'
488 IF ( PRESENT (kvalue4) ) WRITE (kluout,*) '"',kvalue4,'"'
489 IF ( PRESENT (kvalue5) ) WRITE (kluout,*) '"',kvalue5,'"'
490 IF ( PRESENT (kvalue6) ) WRITE (kluout,*) '"',kvalue6,'"'
491 IF ( PRESENT (kvalue7) ) WRITE (kluout,*) '"',kvalue7,'"'
492 IF ( PRESENT (kvalue8) ) WRITE (kluout,*) '"',kvalue8,'"'
493 IF ( PRESENT (kvalue9) ) WRITE (kluout,*) '"',kvalue9,'"'
494 IF ( PRESENT (kvalue10)) WRITE (kluout,*) '"',kvalue10,'"'
495 !
496  CALL abor1_sfx('TEST_NAM_VAR_SURF: (3) INTEGER VALUE NOT ALLOWED')
497 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
498 !-------------------------------------------------------------------------------
499 END SUBROUTINE test_nam_varn0_surf
500 
501 ! #########################################################
502  SUBROUTINE test_nam_varx0_surf(KLUOUT,HNAME,PVAR, &
503  PVALUE1,PVALUE2,PVALUE3, &
504  PVALUE4,PVALUE5,PVALUE6, &
505  PVALUE7,PVALUE8,PVALUE9, &
506  PVALUE10 )
507 ! #########################################################
508 !
509 !!**** *TEST_NAM_VARN0* - routine to test the value of an integer var.
510 !!
511 !! PURPOSE
512 !! -------
513 !
514 !
515 !!** METHOD
516 !! ------
517 !!
518 !! EXTERNAL
519 !! --------
520 !!
521 !! FM_READ
522 !!
523 !! IMPLICIT ARGUMENTS
524 !! ------------------
525 !!
526 !!
527 !! REFERENCE
528 !! ---------
529 !!
530 !!
531 !! AUTHOR
532 !! ------
533 !!
534 !! B. Decharme *METEO-FRANCE*
535 !!
536 !! MODIFICATIONS
537 !! -------------
538 !!
539 !! original 01/2014
540 !----------------------------------------------------------------------------
541 !
542 !* 0. DECLARATIONS
543 ! ------------
544 !
545 !
546 USE yomhook ,ONLY : lhook, dr_hook
547 USE parkind1 ,ONLY : jprb
548 !
549 USE modi_abor1_sfx
550 !
551 IMPLICIT NONE
552 !
553 !* 0.1 Declarations of arguments
554 !
555 INTEGER, INTENT(IN) ::KLUOUT ! output listing logical unit
556  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
557 REAL ,INTENT(IN) ::PVAR ! variable to test
558 
559 REAL ,INTENT(IN), OPTIONAL ::PVALUE1 ! first possible value
560 REAL ,INTENT(IN), OPTIONAL ::PVALUE2 ! second possible value
561 REAL ,INTENT(IN), OPTIONAL ::PVALUE3 ! third possible value
562 REAL ,INTENT(IN), OPTIONAL ::PVALUE4 ! fourth possible value
563 REAL ,INTENT(IN), OPTIONAL ::PVALUE5 ! fiveth possible value
564 REAL ,INTENT(IN), OPTIONAL ::PVALUE6 ! sixth possible value
565 REAL ,INTENT(IN), OPTIONAL ::PVALUE7 ! seventh possible value
566 REAL ,INTENT(IN), OPTIONAL ::PVALUE8 ! eightth possible value
567 REAL ,INTENT(IN), OPTIONAL ::PVALUE9 ! nineth possible value
568 REAL ,INTENT(IN), OPTIONAL ::PVALUE10 ! 10th possible value
569 REAL(KIND=JPRB) :: ZHOOK_HANDLE
570 !
571 !* 0.2 Declarations of local variables
572 !
573 !
574 !-------------------------------------------------------------------------------
575 !
576 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',0,zhook_handle)
577 IF ( PRESENT (pvalue1) ) THEN
578  IF ( pvar==pvalue1 .AND. lhook) &
579  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
580  IF ( pvar==pvalue1 ) RETURN
581 END IF
582 !
583 IF ( PRESENT (pvalue2) ) THEN
584  IF ( pvar==pvalue2 .AND. lhook) &
585  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
586  IF ( pvar==pvalue2 ) RETURN
587 END IF
588 !
589 IF ( PRESENT (pvalue3) ) THEN
590  IF ( pvar==pvalue3 .AND. lhook) &
591  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
592  IF ( pvar==pvalue3 ) RETURN
593 END IF
594 !
595 IF ( PRESENT (pvalue4) ) THEN
596  IF ( pvar==pvalue4 .AND. lhook) &
597  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
598  IF ( pvar==pvalue4 ) RETURN
599 END IF
600 !
601 IF ( PRESENT (pvalue5) ) THEN
602  IF ( pvar==pvalue5 .AND. lhook) &
603  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
604  IF ( pvar==pvalue5 ) RETURN
605 END IF
606 !
607 IF ( PRESENT (pvalue6) ) THEN
608  IF ( pvar==pvalue6 .AND. lhook) &
609  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
610  IF ( pvar==pvalue6 ) RETURN
611 END IF
612 !
613 IF ( PRESENT (pvalue7) ) THEN
614  IF ( pvar==pvalue7 .AND. lhook) &
615  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
616  IF ( pvar==pvalue7 ) RETURN
617 END IF
618 !
619 IF ( PRESENT (pvalue8) ) THEN
620  IF ( pvar==pvalue8 .AND. lhook) &
621  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
622  IF ( pvar==pvalue8 ) RETURN
623 END IF
624 !
625 IF ( PRESENT (pvalue9) ) THEN
626  IF ( pvar==pvalue9 .AND. lhook) &
627  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
628  IF ( pvar==pvalue9 ) RETURN
629 END IF
630 !
631 IF ( PRESENT (pvalue10) ) THEN
632  IF ( pvar==pvalue10 .AND. lhook) &
633  CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
634  IF ( pvar==pvalue10 ) RETURN
635 END IF
636 !
637 !-------------------------------------------------------------------------------
638 !
639 WRITE (kluout,*) ' '
640 WRITE (kluout,*) 'FATAL ERROR:'
641 WRITE (kluout,*) '-----------'
642 WRITE (kluout,*) ' '
643 WRITE (kluout,*) 'Value "',pvar,'" is not allowed for variable ',hname
644 WRITE (kluout,*) ' '
645 WRITE (kluout,*) 'Possible values are:'
646 IF ( PRESENT (pvalue1) ) WRITE (kluout,*) '"',pvalue1,'"'
647 IF ( PRESENT (pvalue2) ) WRITE (kluout,*) '"',pvalue2,'"'
648 IF ( PRESENT (pvalue3) ) WRITE (kluout,*) '"',pvalue3,'"'
649 IF ( PRESENT (pvalue4) ) WRITE (kluout,*) '"',pvalue4,'"'
650 IF ( PRESENT (pvalue5) ) WRITE (kluout,*) '"',pvalue5,'"'
651 IF ( PRESENT (pvalue6) ) WRITE (kluout,*) '"',pvalue6,'"'
652 IF ( PRESENT (pvalue7) ) WRITE (kluout,*) '"',pvalue7,'"'
653 IF ( PRESENT (pvalue8) ) WRITE (kluout,*) '"',pvalue8,'"'
654 IF ( PRESENT (pvalue9) ) WRITE (kluout,*) '"',pvalue9,'"'
655 IF ( PRESENT (pvalue10)) WRITE (kluout,*) '"',pvalue10,'"'
656 !
657  CALL abor1_sfx('TEST_NAM_VAR_SURF: (4) REAL VALUE NOT ALLOWED')
658 IF (lhook) CALL dr_hook('MODI_TEST_NAM_VAR_SURF:TEST_NAM_VARN0_SURF',1,zhook_handle)
659 !-------------------------------------------------------------------------------
660 END SUBROUTINE test_nam_varx0_surf
subroutine test_nam_varx0_surf(KLUOUT, HNAME, PVAR, PVALUE1, PVALUE2, PVALUE3, PVALUE4, PVALUE5, PVALUE6, PVALUE7, PVALUE8, PVALUE9, PVALUE10)
subroutine test_nam_varn0_surf(KLUOUT, HNAME, KVAR, KVALUE1, KVALUE2, KVALUE3, KVALUE4, KVALUE5, KVALUE6, KVALUE7, KVALUE8, KVALUE9, KVALUE10)
subroutine abor1_sfx(YTEXT)
Definition: abor1_sfx.F90:7
integer, parameter jprb
Definition: parkind1.F90:32
subroutine test_nam_varl0_surf(KLUOUT, HNAME, OVAR, OVALUE)
logical lhook
Definition: yomhook.F90:15
subroutine test_nam_varc0_surf(KLUOUT, HNAME, HVAR, HVALUE1, HVALUE2, HVALUE3, HVALUE4, HVALUE5, HVALUE6, HVALUE7, HVALUE8, HVALUE9, HVALUE10)