SURFEX v8.1
General documentation of Surfex
test_nam_var_trip.F90
Go to the documentation of this file.
1 ! #########################################################
2  SUBROUTINE test_nam_var_trip(KLISTING,HNAME,HVAR, &
3  HVALUE1,HVALUE2,HVALUE3, &
4  HVALUE4,HVALUE5,HVALUE6, &
5  HVALUE7,HVALUE8,HVALUE9 )
6 ! #########################################################
7 !
8 !!**** *TEST_NAM_VARC0* - routine to test the value of a character var.
9 !!
10 !! PURPOSE
11 !! -------
12 !
13 !
14 !!** METHOD
15 !! ------
16 !!
17 !! EXTERNAL
18 !! --------
19 !!
20 !! FM_READ
21 !!
22 !! IMPLICIT ARGUMENTS
23 !! ------------------
24 !!
25 !!
26 !! REFERENCE
27 !! ---------
28 !!
29 !!
30 !! AUTHOR
31 !! ------
32 !!
33 !! B. Decharme *METEO-FRANCE*
34 !!
35 !! MODIFICATIONS
36 !! -------------
37 !!
38 !! original form V. Masson 17/04/98
39 !-------------------------------------------------------------------------
40 !
41 !* 0. DECLARATIONS
42 ! ------------
43 !
44 !
45 USE yomhook ,ONLY : lhook, dr_hook
46 USE parkind1 ,ONLY : jprb
47 !
48 USE modi_abort_trip
49 !
50 IMPLICIT NONE
51 !
52 !* 0.1 Declarations of arguments
53 !
54 INTEGER, INTENT(IN) ::KLISTING ! output listing logical unit
55  CHARACTER(LEN=*) ,INTENT(IN) ::HNAME ! name of the variable to test
56  CHARACTER(LEN=*) ,INTENT(IN) ::HVAR ! variable to test
57 
58  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE1 ! first possible value
59  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE2 ! second possible value
60  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE3 ! third possible value
61  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE4 ! fourth possible value
62  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE5 ! fiveth possible value
63  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE6 ! sixth possible value
64  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE7 ! seventh possible value
65  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE8 ! eightth possible value
66  CHARACTER(LEN=*) ,INTENT(IN), OPTIONAL ::HVALUE9 ! nineth possible value
67 REAL(KIND=JPRB) :: ZHOOK_HANDLE
68 !
69 !* 0.2 Declarations of local variables
70 !
71 !
72 !-------------------------------------------------------------------------------
73 !
74 IF (lhook) CALL dr_hook('TEST_NAM_VAR_TRIP',0,zhook_handle)
75 IF ( PRESENT (hvalue1) ) THEN
76  IF ( hvar==hvalue1 .AND. lhook) &
77  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
78  IF ( hvar==hvalue1 ) RETURN
79 END IF
80 !
81 IF ( PRESENT (hvalue2) ) THEN
82  IF ( hvar==hvalue2 .AND. lhook) &
83  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
84  IF ( hvar==hvalue2 ) RETURN
85 END IF
86 !
87 IF ( PRESENT (hvalue3) ) THEN
88  IF ( hvar==hvalue3 .AND. lhook) &
89  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
90  IF ( hvar==hvalue3 ) RETURN
91 END IF
92 !
93 IF ( PRESENT (hvalue4) ) THEN
94  IF ( hvar==hvalue4 .AND. lhook) &
95  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
96  IF ( hvar==hvalue4 ) RETURN
97 END IF
98 !
99 IF ( PRESENT (hvalue5) ) THEN
100  IF ( hvar==hvalue5 .AND. lhook) &
101  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
102  IF ( hvar==hvalue5 ) RETURN
103 END IF
104 !
105 IF ( PRESENT (hvalue6) ) THEN
106  IF ( hvar==hvalue6 .AND. lhook) &
107  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
108  IF ( hvar==hvalue6 ) RETURN
109 END IF
110 !
111 IF ( PRESENT (hvalue7) ) THEN
112  IF ( hvar==hvalue7 .AND. lhook) &
113  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
114  IF ( hvar==hvalue7 ) RETURN
115 END IF
116 !
117 IF ( PRESENT (hvalue8) ) THEN
118  IF ( hvar==hvalue8 .AND. lhook) &
119  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
120  IF ( hvar==hvalue8 ) RETURN
121 END IF
122 !
123 IF ( PRESENT (hvalue9) ) THEN
124  IF ( hvar==hvalue9 .AND. lhook) &
125  CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
126  IF ( hvar==hvalue9 ) RETURN
127 END IF
128 !
129 !-------------------------------------------------------------------------------
130 !
131 WRITE (klisting,*) ' '
132 WRITE (klisting,*) 'FATAL ERROR:'
133 WRITE (klisting,*) '-----------'
134 WRITE (klisting,*) ' '
135 WRITE (klisting,*) 'Value "',hvar,'" is not allowed for variable ',hname
136 WRITE (klisting,*) ' '
137 WRITE (klisting,*) 'Possible values are:'
138 IF ( PRESENT (hvalue1) ) WRITE (klisting,*) '"',hvalue1,'"'
139 IF ( PRESENT (hvalue2) ) WRITE (klisting,*) '"',hvalue2,'"'
140 IF ( PRESENT (hvalue3) ) WRITE (klisting,*) '"',hvalue3,'"'
141 IF ( PRESENT (hvalue4) ) WRITE (klisting,*) '"',hvalue4,'"'
142 IF ( PRESENT (hvalue5) ) WRITE (klisting,*) '"',hvalue5,'"'
143 IF ( PRESENT (hvalue6) ) WRITE (klisting,*) '"',hvalue6,'"'
144 IF ( PRESENT (hvalue7) ) WRITE (klisting,*) '"',hvalue7,'"'
145 IF ( PRESENT (hvalue8) ) WRITE (klisting,*) '"',hvalue8,'"'
146 IF ( PRESENT (hvalue9) ) WRITE (klisting,*) '"',hvalue9,'"'
147 !
148  CALL abort_trip('TEST_NAM_VAR_TRIP: (1) CHARACTER VALUE NOT ALLOWED')
149 IF (lhook) CALL dr_hook('TEST_NAM_VAR_TRIP',1,zhook_handle)
150 !-------------------------------------------------------------------------------
151 END SUBROUTINE test_nam_var_trip
subroutine test_nam_var_trip(KLISTING, HNAME, HVAR, HVALUE1, HVALUE2, HVALUE3, HVALUE4, HVALUE5, HVALUE6, HVALUE7, HVALUE8, HVALUE9)
integer, parameter jprb
Definition: parkind1.F90:32
logical lhook
Definition: yomhook.F90:15
subroutine abort_trip(YTEXT)
Definition: abort_trip.F90:3