Directory: | ./ |
---|---|
File: | rad/suphy2.f90 |
Date: | 2022-01-11 19:19:34 |
Exec | Total | Coverage | |
---|---|---|---|
Lines: | 30 | 34 | 88.2% |
Branches: | 5 | 12 | 41.7% |
Line | Branch | Exec | Source |
---|---|---|---|
1 | !OPTIONS XOPT(NOEVAL) | ||
2 | 1 | SUBROUTINE SUPHY2(KULOUT) | |
3 | |||
4 | !**** *SUPHY2* - Initialize common YOMPHY2 physics controlling | ||
5 | ! constants | ||
6 | |||
7 | ! Purpose. | ||
8 | ! -------- | ||
9 | ! Initialize YOMPHY2, the common that contains the parameters | ||
10 | ! for the control part of the physics of the model. | ||
11 | |||
12 | !** Interface. | ||
13 | ! ---------- | ||
14 | ! *CALL* *SUPHY2(KULOUT) | ||
15 | |||
16 | ! Explicit arguments : | ||
17 | ! -------------------- | ||
18 | ! KULOUT : Logical unit for the output | ||
19 | |||
20 | ! Implicit arguments : | ||
21 | ! -------------------- | ||
22 | ! COMMON YOMPHY2 | ||
23 | |||
24 | ! Method. | ||
25 | ! ------- | ||
26 | ! See documentation | ||
27 | |||
28 | ! Externals. | ||
29 | ! ---------- | ||
30 | |||
31 | ! Reference. | ||
32 | ! ---------- | ||
33 | ! Documentation ARPEGE | ||
34 | |||
35 | ! Author. | ||
36 | ! ------- | ||
37 | ! J.-F. Geleyn . | ||
38 | ! Original : 90-9-1 | ||
39 | |||
40 | ! Modifications. | ||
41 | ! -------------- | ||
42 | ! R. EL Khatib : 93-04-02 Set-up defaults controled by LECMWF | ||
43 | ! J.-F. Geleyn : 93-08-19 New cloudiness diagnostics. | ||
44 | ! J.-F. Geleyn : 95-04-10 Anti-fibril. Girard-Delage. | ||
45 | ! P. Marquet : 97-02-18 Value of VETAF=VAH/VP00+VBH. | ||
46 | ! J.M. Piriou : 97-04-17 XMULAF default value. | ||
47 | ! E. Bazile : 98-03-10 Introduce XMUCVPP. | ||
48 | ! W. Owcarz : 2000-03-27 Set a default value for TSPHY | ||
49 | ! R. EL Khatib : 2000-06-13 RIPBLC | ||
50 | ! R. EL Khatib : 2000-08-21 Turbulent gusts setup | ||
51 | ! J.M. Piriou : 2002-01-10 set default values to operational ones. | ||
52 | ! Modified by R. EL Khatib : 02-03-29 Control XMULAF<0 ; add LMULAF | ||
53 | ! Modified by D. Banciu : 02-12-09 Introduction of XDAMP | ||
54 | ! M.Hamrud 01-Oct-2003 CY28 Cleaning | ||
55 | ! ------------------------------------------------------------------ | ||
56 | |||
57 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
58 | USE YOMHOOK ,ONLY : LHOOK, DR_HOOK | ||
59 | |||
60 | ! Ce qui concerne NULNAM commente par MPL le 15.04.09 | ||
61 | !USE YOMLUN , ONLY : NULNAM | ||
62 | USE YOMCT0B , ONLY : LECMWF | ||
63 | ! commente par MPL 25.11.08 | ||
64 | !USE YOMGEM , ONLY : VALH ,VBH | ||
65 | USE YOMDIM , ONLY : NFLEVG | ||
66 | USE YOMPHY2 , ONLY : NTSHM ,NTSML ,XMUCVPP ,LMULAF ,& | ||
67 | & XMULAF ,XDAMP ,HCLP ,HTCLS ,& | ||
68 | & RIPBLC ,& | ||
69 | & LRAFTUR ,GZ0RAF ,FACRAF ,& | ||
70 | & HVCLS ,HTSHM ,HTSML ,& | ||
71 | & TSPHY | ||
72 | |||
73 | IMPLICIT NONE | ||
74 | |||
75 | INTEGER(KIND=JPIM),INTENT(IN) :: KULOUT | ||
76 | INTEGER(KIND=JPIM) :: JLEV | ||
77 | |||
78 | REAL(KIND=JPRB) :: ZVETAF | ||
79 | REAL(KIND=JPRB) :: ZHOOK_HANDLE | ||
80 | |||
81 | INTERFACE | ||
82 | SUBROUTINE ABOR1(CDTEXT) | ||
83 | CHARACTER(LEN=*) :: CDTEXT | ||
84 | END SUBROUTINE ABOR1 | ||
85 | END INTERFACE | ||
86 | INTERFACE | ||
87 | SUBROUTINE POSNAM(KULNAM,CDNAML) | ||
88 | USE PARKIND1 ,ONLY : JPIM ,JPRB | ||
89 | INTEGER(KIND=JPIM),INTENT(IN) :: KULNAM | ||
90 | CHARACTER(LEN=*) ,INTENT(IN) :: CDNAML | ||
91 | END SUBROUTINE POSNAM | ||
92 | END INTERFACE | ||
93 | |||
94 | ! ------------------------------------------------------------------ | ||
95 | NAMELIST/NAMPHY2/& | ||
96 | &XMUCVPP,XMULAF,XDAMP,LMULAF,& | ||
97 | &HCLP,& | ||
98 | &RIPBLC,& | ||
99 | &GZ0RAF,FACRAF,LRAFTUR,& | ||
100 | &HTSHM,HTSML | ||
101 | ! ------------------------------------------------------------------ | ||
102 | |||
103 | ! ------------------------------------------------------------------ | ||
104 | |||
105 | !* 1. Set default values. | ||
106 | ! ------------------- | ||
107 | |||
108 | ! 1.1 Set implicit default values | ||
109 | |||
110 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUPHY2',0,ZHOOK_HANDLE) |
111 | 1 | XMULAF=-1.75_JPRB | |
112 | 1 | XMUCVPP=0._JPRB | |
113 | 1 | XDAMP=0._JPRB | |
114 | 1 | HCLP=1500._JPRB | |
115 | 1 | HTCLS=2._JPRB | |
116 | 1 | HVCLS=10._JPRB | |
117 | 1 | HTSHM=0.450_JPRB | |
118 | 1 | HTSML=0.785_JPRB | |
119 | 1 | TSPHY=1._JPRB | |
120 | 1 | RIPBLC=0.5_JPRB | |
121 | 1 | LRAFTUR=.FALSE. | |
122 | 1 | GZ0RAF=10.0_JPRB | |
123 | 1 | FACRAF=15.0_JPRB | |
124 | 1 | LMULAF=.FALSE. | |
125 | |||
126 | ! 1.2 Modify default values according to LECMWF | ||
127 | |||
128 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LECMWF) THEN |
129 | ELSE | ||
130 | 1 | LRAFTUR=.TRUE. | |
131 | ENDIF | ||
132 | |||
133 | ! Remark : values for TSPHY, NTSHM/ML are calculated and not set up. | ||
134 | |||
135 | ! ------------------------------------------------------------------ | ||
136 | |||
137 | !* 2. Modify default values. | ||
138 | ! ---------------------- | ||
139 | |||
140 | ! Ce qui concerne NAMPHY2 commente par MPL le 15.04.09 | ||
141 | !CALL POSNAM(NULNAM,'NAMPHY2') | ||
142 | !READ(NULNAM,NAMPHY2) | ||
143 | ! ------------------------------------------------------------------ | ||
144 | |||
145 | !* 3. Compute cloud transition indexes. | ||
146 | ! --------------------------------- | ||
147 | |||
148 | 1 | NTSHM=0 | |
149 | 1 | NTSML=0 | |
150 | ! commente par MPL 25.11.08 | ||
151 | !DO JLEV=1,NFLEVG | ||
152 | ! ZVETAF=(VALH(JLEV)+VBH(JLEV)+VALH(JLEV-1)+VBH(JLEV-1))*0.5_JPRB | ||
153 | ! IF (ZVETAF <= HTSHM) THEN | ||
154 | ! NTSHM=JLEV | ||
155 | ! ENDIF | ||
156 | ! IF (ZVETAF <= HTSML) THEN | ||
157 | ! NTSML=JLEV | ||
158 | ! ENDIF | ||
159 | !ENDDO | ||
160 | |||
161 | ! ------------------------------------------------------------------ | ||
162 | |||
163 | !* 4. Print final values. | ||
164 | ! ------------------- | ||
165 | |||
166 | 1 | WRITE(UNIT=KULOUT,FMT='('' COMMON YOMPHY2 '')') | |
167 | WRITE(UNIT=KULOUT,FMT='('' XMUCVPP = '',E10.4,'' XMULAF = '',E10.4 & | ||
168 | & ,'' XDAMP = '',E10.4 & | ||
169 | & ,'' LMULAF = '',L2,/,'' HTCLS = '',E10.4 & | ||
170 | & ,'' HVCLS = '',E10.4,'' HCLP = '',E10.4,/& | ||
171 | & ,'' RIPBLC = '',F8.4 & | ||
172 | & ,'' LRAFTUR = '',L2,'' GZ0RAF = '',E10.4,'' FACRAF = '',E10.4 & | ||
173 | & ,'' HTSHM = '',F8.4,'' NTSHM = '',I3,'' HTSML = '',F8.4 & | ||
174 | & ,'' NTSML = '',I3 & | ||
175 | & )')& | ||
176 | 1 | & XMUCVPP,XMULAF,XDAMP,LMULAF,& | |
177 | 1 | & HTCLS,HVCLS,HCLP,& | |
178 | 1 | & RIPBLC,& | |
179 | 1 | & LRAFTUR,GZ0RAF,FACRAF,& | |
180 | 2 | & HTSHM,NTSHM,HTSML,NTSML | |
181 | |||
182 | !* 5. Control | ||
183 | ! ------- | ||
184 | |||
185 |
1/2✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
|
1 | IF (XMULAF > 0.0_JPRB) THEN |
186 | ✗ | WRITE(KULOUT,*) 'XMULAF SHOULD BE NEGATIVE' | |
187 | ✗ | CALL ABOR1('SUPHY2 : ABOR1 CALLED') | |
188 | ENDIF | ||
189 | |||
190 |
1/4✗ Branch 0 not taken.
✓ Branch 1 taken 1 times.
✗ Branch 2 not taken.
✗ Branch 3 not taken.
|
1 | IF ((XDAMP /= 0.0_JPRB).AND.(XMUCVPP /= 0.0_JPRB)) THEN |
191 | ✗ | WRITE(UNIT=KULOUT,FMT='(A)') 'INCONSISTENCY BETWEEN XDAMP AND XMUCVPP !' | |
192 | ✗ | CALL ABOR1('XDAMP/=0. IMPLIES XMUCVPP=0.!...') | |
193 | ENDIF | ||
194 | |||
195 | ! ------------------------------------------------------------------ | ||
196 | |||
197 |
1/2✓ Branch 0 taken 1 times.
✗ Branch 1 not taken.
|
1 | IF (LHOOK) CALL DR_HOOK('SUPHY2',1,ZHOOK_HANDLE) |
198 | 1 | END SUBROUTINE SUPHY2 | |
199 |