- Timestamp:
- Feb 9, 2000, 11:31:18 AM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ.3.3/trunk/libf/phylmd/nuage.F
r2 r44 37 37 REAL zflwp, zradef, zfice, zmsac 38 38 c 39 REAL radius, rad_froid, rad_chaud 40 PARAMETER (rad_chaud=10.0, rad_froid=30.0) 39 REAL radius, rad_froid, rad_chaud, rad_chau1, rad_chau2 40 PARAMETER (rad_chau1=13.0, rad_chau2=9.0, rad_froid=35.0) 41 ccc PARAMETER (rad_chaud=15.0, rad_froid=35.0) 42 c sintex initial PARAMETER (rad_chaud=10.0, rad_froid=30.0) 41 43 REAL coef, coef_froi, coef_chau 42 44 PARAMETER (coef_chau=0.13, coef_froi=0.09) … … 51 53 DO k = 1, klev 52 54 DO i = 1, klon 55 rad_chaud = rad_chau1 56 IF (k.LE.3) rad_chaud = rad_chau2 53 57 pclc(i,k) = MAX(pclc(i,k), seuil_neb) 54 58 zflwp = 1000.*pqlwp(i,k)/RG/pclc(i,k) … … 127 131 RETURN 128 132 END 129 SUBROUTINE diagcld (paprs,pplay,t,q,rain,snow,kbot,ktop,133 SUBROUTINE diagcld1(paprs,pplay,rain,snow,kbot,ktop, 130 134 . diafra,dialiq) 131 135 IMPLICIT none … … 155 159 REAL diafra(klon,klev) ! fraction nuageuse diagnostiquee 156 160 REAL dialiq(klon,klev) ! eau liquide nuageuse 157 c158 c Options a choisir:159 LOGICAL ok_conv ! prendre en compte les nuages convectifs160 PARAMETER (ok_conv=.TRUE.)161 LOGICAL ok_inve ! prendre en compte les nuages d'inversion162 CCC PARAMETER (ok_inve=.TRUE.)163 PARAMETER (ok_inve=.FALSE.)164 161 c 165 162 c Constantes ajustables: … … 177 174 REAL ZEPSCR 178 175 PARAMETER (ZEPSCR=1.0E-10) 179 REAL CLOIA, CLOIB, CLOIC, CLOID180 ccc PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.6, CLOID=5.0)181 PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.9, CLOID=5.0)182 REAL RGAMMAS183 PARAMETER (RGAMMAS=0.05)184 REAL CRHL185 ccc PARAMETER (CRHL=0.15)186 PARAMETER (CRHL=0.70)187 REAL t_coup188 PARAMETER (t_coup=234.0)189 176 c 190 177 c Variables locales: 191 INTEGER i, k, kb, invb(klon) 192 REAL zcc(klon), zqs, zrhb, zcll, zdthmin(klon), zdthdp 193 REAL zdelta, zcor 194 c 195 c Fonctions thermodynamiques: 196 #include "YOETHF.h" 197 #include "FCTTRE.h" 178 INTEGER i, k 179 REAL zcc(klon) 198 180 c 199 181 c Initialisation: … … 205 187 ENDDO 206 188 ENDDO 207 c208 IF (ok_conv) THEN209 189 c 210 190 DO i = 1, klon ! Calculer la fraction nuageuse … … 215 195 ENDIF 216 196 ENDDO 217 c n197 c 218 198 DO i = 1, klon ! pour traiter les enclumes 219 diafra(i,ktop(i)) = zcc(i) * CCFCT 220 ccc diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)),zcc(i)*CCFCT) 199 diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)),zcc(i)*CCFCT) 221 200 IF ((zcc(i).GE.CANVH) .AND. 222 201 . (pplay(i,ktop(i)).LE.CETAHB*paprs(i,1))) 223 . diafra(i,ktop(i)) = MAX(zcc(i)*CCFCT,CANVA*(zcc(i)-CANVB)) 224 cc . diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)), 225 cc . MAX(zcc(i)*CCFCT,CANVA*(zcc(i)-CANVB))) 202 . diafra(i,ktop(i)) = MAX(diafra(i,ktop(i)), 203 . MAX(zcc(i)*CCFCT,CANVA*(zcc(i)-CANVB))) 226 204 dialiq(i,ktop(i))=CCLWMR*diafra(i,ktop(i)) 227 205 ENDDO … … 230 208 DO i = 1, klon 231 209 IF (k.LT.ktop(i) .AND. k.GE.kbot(i)) THEN 232 diafra(i,k)=zcc(i)*CCFCT 233 cc diafra(i,k)=MAX(diafra(i,k),zcc(i)*CCFCT) 210 diafra(i,k)=MAX(diafra(i,k),zcc(i)*CCFCT) 234 211 dialiq(i,k)=CCLWMR*diafra(i,k) 235 212 ENDIF … … 237 214 ENDDO 238 215 c 239 ENDIF ! ok_conv 240 c 241 IF (ok_inve) THEN 242 216 RETURN 217 END 218 SUBROUTINE diagcld2(paprs,pplay,t,q, diafra,dialiq) 219 IMPLICIT none 220 c 221 #include "dimensions.h" 222 #include "dimphy.h" 223 #include "YOMCST.h" 224 c 225 c Arguments d'entree: 226 REAL paprs(klon,klev+1) ! pression (Pa) a inter-couche 227 REAL pplay(klon,klev) ! pression (Pa) au milieu de couche 228 REAL t(klon,klev) ! temperature (K) 229 REAL q(klon,klev) ! humidite specifique (Kg/Kg) 230 c 231 c Arguments de sortie: 232 REAL diafra(klon,klev) ! fraction nuageuse diagnostiquee 233 REAL dialiq(klon,klev) ! eau liquide nuageuse 234 c 235 REAL CETAMB 236 PARAMETER (CETAMB=0.80) 237 REAL CLOIA, CLOIB, CLOIC, CLOID 238 PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.6, CLOID=5.0) 239 ccc PARAMETER (CLOIA=1.0E+02, CLOIB=-10.00, CLOIC=-0.9, CLOID=5.0) 240 REAL RGAMMAS 241 PARAMETER (RGAMMAS=0.05) 242 REAL CRHL 243 PARAMETER (CRHL=0.15) 244 ccc PARAMETER (CRHL=0.70) 245 REAL t_coup 246 PARAMETER (t_coup=234.0) 247 c 248 c Variables locales: 249 INTEGER i, k, kb, invb(klon) 250 REAL zqs, zrhb, zcll, zdthmin(klon), zdthdp 251 REAL zdelta, zcor 252 c 253 c Fonctions thermodynamiques: 254 #include "YOETHF.h" 255 #include "FCTTRE.h" 256 c 257 c Initialisation: 258 c 259 DO k = 1, klev 260 DO i = 1, klon 261 diafra(i,k) = 0.0 262 dialiq(i,k) = 0.0 263 ENDDO 264 ENDDO 265 c 243 266 DO i = 1, klon 244 267 invb(i) = klev … … 280 303 . zcll=zcll*(1.-(CRHL-zrhb)*CLOID) 281 304 zcll=MIN(1.0,MAX(0.0,zcll)) 282 cc diafra(i,kb) = MAX(diafra(i,kb),zcll) 283 cc dialiq(i,kb)= diafra(i,kb) * RGAMMAS*zqs 284 diafra(i,kb) = zcll 285 dialiq(i,kb)= zcll* RGAMMAS*zqs 286 ENDDO 287 c 288 ENDIF ! ok_inve 289 c 305 diafra(i,kb) = MAX(diafra(i,kb),zcll) 306 dialiq(i,kb)= diafra(i,kb) * RGAMMAS*zqs 307 ENDDO 308 c 309 RETURN 290 310 END
Note: See TracChangeset
for help on using the changeset viewer.