- Timestamp:
- Feb 5, 2024, 10:16:07 PM (12 months ago)
- Location:
- LMDZ6/trunk
- Files:
-
- 2 added
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/DefLists/field_def_lmdz.xml
r4774 r4803 643 643 <field id="rneblsvol" long_name="LS Cloud fraction by volume" unit="-" /> 644 644 <field id="pfraclr" long_name="LS precip fraction clear-sky part" unit="-" /> 645 <field id="pfracld" long_name="LS precip fraction cloudy part" unit="-" /> 645 <field id="pfracld" long_name="LS precip fraction cloudy part" unit="-" /> 646 <field id="dqreva" long_name="LS rain tendency evaporation" unit="kg/m2/s" /> 647 <field id="dqrauto" long_name="LS rain tendency autoconversion" unit="kg/m2/s" /> 648 <field id="dqrcol" long_name="LS rain tendency collection" unit="kg/m2/s" /> 649 <field id="dqrmelt" long_name="LS rain tendency melting" unit="kg/m2/s" /> 650 <field id="dqrfreez" long_name="LS rain tendency freezing" unit="kg/m2/s" /> 651 <field id="dqssub" long_name="LS snow tendency sublimation" unit="kg/m2/s" /> 652 <field id="dqsauto" long_name="LS snow tendency autoconversion" unit="kg/m2/s" /> 653 <field id="dqsagg" long_name="LS snow tendency aggregation" unit="kg/m2/s" /> 654 <field id="dqsmelt" long_name="LS snow tendency melting" unit="kg/m2/s" /> 655 <field id="dqsfreez" long_name="LS snow tendency freezing" unit="kg/m2/s" /> 656 <field id="dqsrim" long_name="LS snow tendency riming" unit="kg/m2/s" /> 646 657 <field id="rhum" long_name="Relative humidity" unit="-" /> 647 658 <field id="rhl" long_name="Relative humidity wrt liquid" unit="%" /> -
LMDZ6/trunk/libf/phylmd/lmdz_lscp.F90
r4686 r4803 18 18 qclr, qcld, qss, qvc, rnebclr, rnebss, gamma_ss, & 19 19 Tcontr, qcontr, qcontr2, fcontrN, fcontrP, & 20 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 20 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, & 21 dqreva,dqssub,dqrauto,dqrcol,dqrmelt,dqrfreez,dqsauto, & 22 dqsagg,dqsrim,dqsmelt,dqsfreez) 21 23 22 24 !++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ … … 96 98 USE lmdz_lscp_tools, ONLY : fallice_velocity, distance_to_cloud_top 97 99 USE ice_sursat_mod, ONLY : ice_sursat 100 USE lmdz_lscp_poprecip, ONLY : poprecip_evapsub, poprecip_postcld 98 101 99 102 ! Use du module lmdz_lscp_ini contenant les constantes … … 106 109 USE lmdz_lscp_ini, ONLY : iflag_autoconversion, ffallv_con, ffallv_lsc 107 110 USE lmdz_lscp_ini, ONLY : RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG 111 USE lmdz_lscp_ini, ONLY : ok_poprecip 108 112 109 113 IMPLICIT NONE … … 197 201 REAL, DIMENSION(klon,klev), INTENT(OUT) :: cloudth_sigmaenv ! std of saturation deficit in environment 198 202 203 ! for POPRECIP 204 205 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqreva !-- rain tendendy due to evaporation [kg/kg/s] 206 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqssub !-- snow tendency due to sublimation [kg/kg/s] 207 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqrcol !-- rain tendendy due to collection by rain of liquid cloud droplets [kg/kg/s] 208 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqsagg !-- snow tendency due to collection of lcoud ice by aggregation [kg/kg/s] 209 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqrauto !-- rain tendency due to autoconversion of cloud liquid [kg/kg/s] 210 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqsauto !-- snow tendency due to autoconversion of cloud ice [kg/kg/s] 211 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqsrim !-- snow tendency due to riming [kg/kg/s] 212 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqsmelt !-- snow tendency due to melting [kg/kg/s] 213 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqrmelt !-- rain tendency due to melting [kg/kg/s] 214 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqsfreez !-- snow tendency due to freezing [kg/kg/s] 215 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dqrfreez !-- rain tendency due to freezing [kg/kg/s] 199 216 200 217 … … 243 260 REAL :: zfrac_lessi 244 261 REAL, DIMENSION(klon) :: zprec_cond 245 REAL , DIMENSION(klon):: zmair262 REAL :: zmair 246 263 REAL :: zcpair, zcpeau 247 264 REAL, DIMENSION(klon) :: zlh_solid 265 REAL, DIMENSION(klon) :: ztupnew 248 266 REAL :: zm_solid ! for liquid -> solid conversion 249 267 REAL, DIMENSION(klon) :: zrflclr, zrflcld … … 266 284 INTEGER ncoreczq 267 285 INTEGER, DIMENSION(klon,klev) :: mpc_bl_points 286 LOGICAL iftop 268 287 269 288 LOGICAL, DIMENSION(klon) :: lognormale … … 339 358 distcltop1D(:)=0.0 340 359 temp_cltop1D(:) = 0.0 360 ztupnew(:)=0.0 341 361 !--ice supersaturation 342 362 gamma_ss(:,:) = 1.0 … … 350 370 distcltop(:,:)=0. 351 371 temp_cltop(:,:)=0. 372 !-- poprecip 373 dqreva(:,:)=0.0 374 dqrauto(:,:)=0.0 375 dqrmelt(:,:)=0.0 376 dqrfreez(:,:)=0.0 377 dqrcol(:,:)=0.0 378 dqssub(:,:)=0.0 379 dqsauto(:,:)=0.0 380 dqsrim(:,:)=0.0 381 dqsagg(:,:)=0.0 382 dqsfreez(:,:)=0.0 383 dqsmelt(:,:)=0.0 384 385 386 352 387 353 388 !c_iso: variable initialisation for iso … … 361 396 362 397 DO k = klev, 1, -1 398 399 IF (k.LE.klev-1) THEN 400 iftop=.false. 401 ELSE 402 iftop=.true. 403 ENDIF 363 404 364 405 ! Initialisation temperature and specific humidity … … 366 407 zt(i)=temp(i,k) 367 408 zq(i)=qt(i,k) 409 IF (.not. iftop) THEN 410 ztupnew(i)=temp(i,k+1)+d_t(i,k+1) 411 ENDIF 368 412 !c_iso init of iso 369 413 ENDDO 370 414 415 !================================================================ 416 ! Flag for the new and more microphysical treatment of precipitation from Atelier Nuage (R) 417 IF (ok_poprecip) THEN 418 419 CALL poprecip_evapsub(klon, dtime, iftop, paprs(:,k), paprs(:,k+1), pplay(:,k), & 420 zt, ztupnew, zq, zmqc, znebprecipclr, znebprecipcld, & 421 zrfl, zrflclr, zrflcld, & 422 zifl, ziflclr, ziflcld, & 423 dqreva(:,k),dqssub(:,k) & 424 ) 425 426 !================================================================ 427 ELSE 428 371 429 ! -------------------------------------------------------------------- 372 ! P 0> Thermalization of precipitation falling from the overlying layer430 ! P1> Thermalization of precipitation falling from the overlying layer 373 431 ! -------------------------------------------------------------------- 374 432 ! Computes air temperature variation due to enthalpy transported by … … 385 443 ! --------------------------------------------------------------------- 386 444 387 IF (k.LE.klev-1) THEN 445 IF (iftop) THEN 446 447 DO i = 1, klon 448 zmqc(i) = 0. 449 ENDDO 450 451 ELSE 388 452 389 453 DO i = 1, klon 390 454 391 zmair (i)=(paprs(i,k)-paprs(i,k+1))/RG455 zmair=(paprs(i,k)-paprs(i,k+1))/RG 392 456 ! no condensed water so cp=cp(vapor+dry air) 393 457 ! RVTMP2=rcpv/rcpd-1 … … 398 462 ! layer's air so that precipitation at the ground has the 399 463 ! same temperature as the lowermost layer 400 zmqc(i) = (zrfl(i)+zifl(i))*dtime/zmair (i)464 zmqc(i) = (zrfl(i)+zifl(i))*dtime/zmair 401 465 ! t(i,k+1)+d_t(i,k+1): new temperature of the overlying layer 402 zt(i) = ( (temp(i,k+1)+d_t(i,k+1))*zmqc(i)*zcpeau + zcpair*zt(i) ) &466 zt(i) = ( ztupnew(i)*zmqc(i)*zcpeau + zcpair*zt(i) ) & 403 467 / (zcpair + zmqc(i)*zcpeau) 404 468 405 ENDDO406 407 ELSE408 409 DO i = 1, klon410 zmair(i)=(paprs(i,k)-paprs(i,k+1))/RG411 zmqc(i) = 0.412 469 ENDDO 413 470 … … 415 472 416 473 ! -------------------------------------------------------------------- 417 ! P 1> Precipitation evaporation/sublimation474 ! P2> Precipitation evaporation/sublimation/melting 418 475 ! -------------------------------------------------------------------- 419 ! A part of the precipitation coming from above is evaporated/sublimated .476 ! A part of the precipitation coming from above is evaporated/sublimated/melted. 420 477 ! -------------------------------------------------------------------- 421 478 422 479 IF (iflag_evap_prec.GE.1) THEN 423 480 … … 506 563 ! redistribute zqev0 conserving the ratio liquid/ice 507 564 508 ! todoan: check the consistency of this formula509 565 IF (zqevt+zqevti.GT.zqev0) THEN 510 566 zqev=zqev0*zqevt/(zqevt+zqevti) … … 524 580 525 581 ! vapor, temperature, precip fluxes update 582 ! vapor is updated after evaporation/sublimation (it is increased) 526 583 zq(i) = zq(i) - (zrfln(i)+zifln(i)-zrfl(i)-zifl(i)) & 527 584 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime 585 ! zmqc is the total condensed water in the precip flux (it is decreased) 528 586 zmqc(i) = zmqc(i) + (zrfln(i)+zifln(i)-zrfl(i)-zifl(i)) & 529 587 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime 588 ! air and precip temperature (i.e., gridbox temperature) 589 ! is updated due to latent heat cooling 530 590 zt(i) = zt(i) + (zrfln(i)-zrfl(i)) & 531 591 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime & … … 579 639 ! c_iso: melting of isotopic precipi with zmelt (no fractionation) 580 640 581 ! Latent heat of melting with precipitation thermalization 641 ! Latent heat of melting because of precipitation melting 642 ! NB: the air + precip temperature is simultaneously updated 582 643 zt(i)=zt(i)-zifl(i)*zmelt*(RG*dtime)/(paprs(i,k)-paprs(i,k+1)) & 583 644 *RLMLT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i))) … … 590 651 ENDIF ! (zrfl(i)+zifl(i).GT.0.) 591 652 592 ENDDO 653 ENDDO ! loop on klon 593 654 594 655 ENDIF ! (iflag_evap_prec>=1) 656 657 ENDIF ! (ok_poprecip) 595 658 596 659 ! -------------------------------------------------------------------- … … 647 710 648 711 649 650 651 652 712 ELSEIF (iflag_cloudth_vert.GE.3 .AND. iflag_cloudth_vert.LE.5) THEN 653 713 … … 861 921 862 922 ! Partition function in stratiform clouds (will be overwritten in boundary-layer MPCs) 863 CALL icefrac_lscp(klon,zt (:),iflag_ice_thermo,distcltop1D(:),temp_cltop1D(:),zfice(:), dzfice(:))923 CALL icefrac_lscp(klon,zt,iflag_ice_thermo,distcltop1D,temp_cltop1D,zfice, dzfice) 864 924 865 925 … … 918 978 ! ---------------------------------------------------------------- 919 979 980 !================================================================ 981 IF (ok_poprecip) THEN 982 983 DO i = 1, klon 984 zoliql(i) = zcond(i) * ( 1. - zfice(i) ) 985 zoliqi(i) = zcond(i) * zfice(i) 986 ENDDO 987 988 CALL poprecip_postcld(klon, dtime, paprs(:,k), paprs(:,k+1), pplay(:,k), & 989 ctot_vol(:,k), ptconv(:,k), & 990 zt, zq, zoliql, zoliqi, zfice, & 991 rneb(:,k), znebprecipclr, znebprecipcld, & 992 zrfl, zrflclr, zrflcld, & 993 zifl, ziflclr, ziflcld, & 994 dqrauto(:,k),dqrcol(:,k),dqrmelt(:,k),dqrfreez(:,k), & 995 dqsauto(:,k),dqsagg(:,k),dqsrim(:,k),dqsmelt(:,k),dqsfreez(:,k) & 996 ) 997 998 DO i = 1, klon 999 zoliq(i) = zoliql(i) + zoliqi(i) 1000 IF ( zoliq(i) .GT. 0. ) THEN 1001 zfice(i) = zoliqi(i)/zoliq(i) 1002 ELSE 1003 zfice(i) = 0.0 1004 ENDIF 1005 ! when poprecip activated, radiation does not see any precipitation content 1006 radocond(i,k) = zoliq(i) 1007 radocondl(i,k)= radocond(i,k)*(1.-zfice(i)) 1008 radocondi(i,k)= radocond(i,k)*zfice(i) 1009 ENDDO 1010 1011 !================================================================ 1012 ELSE 1013 920 1014 ! LTP: 921 1015 IF (iflag_evap_prec .GE. 4) THEN … … 982 1076 zneb(i) = MAX(rneb(i,k),seuil_neb) 983 1077 radocond(i,k) = zoliq(i)/REAL(niter_lscp+1) 984 radicefrac(i,k) = zfice(i)985 1078 radocondi(i,k)=zoliq(i)*zfice(i)/REAL(niter_lscp+1) 986 1079 radocondl(i,k)=zoliq(i)*(1.-zfice(i))/REAL(niter_lscp+1) … … 1195 1288 ENDDO 1196 1289 1197 1198 1290 ENDIF 1291 1292 ENDIF ! ok_poprecip 1199 1293 1200 1294 ! End of precipitation formation 1201 1295 ! -------------------------------- 1202 1296 1203 ! Outputs: 1204 ! Precipitation fluxes at layer interfaces 1205 ! + precipitation fractions + 1206 ! temperature and water species tendencies 1207 DO i = 1, klon 1208 psfl(i,k)=zifl(i) 1209 prfl(i,k)=zrfl(i) 1210 pfraclr(i,k)=znebprecipclr(i) 1211 pfracld(i,k)=znebprecipcld(i) 1212 d_ql(i,k) = (1-zfice(i))*zoliq(i) 1213 d_qi(i,k) = zfice(i)*zoliq(i) 1214 d_q(i,k) = zq(i) - qt(i,k) 1215 ! c_iso: same for isotopes 1216 d_t(i,k) = zt(i) - temp(i,k) 1217 ENDDO 1297 1298 ! Calculation of cloud condensates amount seen by radiative scheme 1299 !----------------------------------------------------------------- 1218 1300 1219 1301 ! Calculation of the concentration of condensates seen by the radiation scheme 1220 1302 ! for liquid phase, we take radocondl 1221 1303 ! for ice phase, we take radocondi if we neglect snowfall, otherwise (ok_radocond_snow=true) 1222 ! we recaulate radocondi to account for contributions from the precipitation flux 1223 1224 IF ((ok_radocond_snow) .AND. (k .LT. klev)) THEN 1304 ! we recalculate radocondi to account for contributions from the precipitation flux 1305 ! TODO: for the moment, we deactivate this option when ok_poprecip=.true. 1306 1307 IF ((ok_radocond_snow) .AND. (k .LT. klev) .AND. (.NOT. ok_poprecip)) THEN 1225 1308 ! for the solid phase (crystals + snowflakes) 1226 1309 ! we recalculate radocondi by summing … … 1319 1402 CALL calc_qsat_ecmwf(klon,Tbef(:),qzero(:),pplay(:,k),RTT,2,.false.,qsats(:,k),zdqs(:)) 1320 1403 1404 1405 1406 ! Outputs: 1407 !------------------------------- 1408 ! Precipitation fluxes at layer interfaces 1409 ! + precipitation fractions + 1410 ! temperature and water species tendencies 1411 DO i = 1, klon 1412 psfl(i,k)=zifl(i) 1413 prfl(i,k)=zrfl(i) 1414 pfraclr(i,k)=znebprecipclr(i) 1415 pfracld(i,k)=znebprecipcld(i) 1416 d_ql(i,k) = (1-zfice(i))*zoliq(i) 1417 d_qi(i,k) = zfice(i)*zoliq(i) 1418 d_q(i,k) = zq(i) - qt(i,k) 1419 ! c_iso: same for isotopes 1420 d_t(i,k) = zt(i) - temp(i,k) 1421 ENDDO 1422 1423 1321 1424 ENDDO 1322 1425 1323 !======================================================================1324 ! END OF VERTICAL LOOP1325 !======================================================================1326 1426 1327 1427 ! Rain or snow at the surface (depending on the first layer temperature) -
LMDZ6/trunk/libf/phylmd/lmdz_lscp_ini.F90
r4666 r4803 9 9 !$OMP THREADPRIVATE(RCPD, RLSTT, RLVTT, RLMLT, RVTMP2, RTT, RD, RG) 10 10 11 REAL, SAVE :: seuil_neb=0.001! cloud fraction threshold: a cloud really exists when exceeded11 REAL, SAVE, PROTECTED :: seuil_neb=0.001 ! cloud fraction threshold: a cloud really exists when exceeded 12 12 !$OMP THREADPRIVATE(seuil_neb) 13 13 … … 15 15 !$OMP THREADPRIVATE(lunout,prt_level) 16 16 17 INTEGER, SAVE :: niter_lscp=5! number of iterations to calculate autoconversion to precipitation17 INTEGER, SAVE, PROTECTED :: niter_lscp=5 ! number of iterations to calculate autoconversion to precipitation 18 18 !$OMP THREADPRIVATE(niter_lscp) 19 19 20 INTEGER, SAVE :: iflag_evap_prec=1! precipitation evaporation flag. 0: nothing, 1: "old way",20 INTEGER, SAVE, PROTECTED :: iflag_evap_prec=1 ! precipitation evaporation flag. 0: nothing, 1: "old way", 21 21 ! 2: Max cloud fraction above to calculate the max of reevaporation 22 22 ! >=4: LTP'method i.e. evaporation in the clear-sky fraction of the mesh only … … 25 25 !$OMP THREADPRIVATE(iflag_evap_prec) 26 26 27 REAL t_coup ! temperature threshold which determines the phase 28 PARAMETER (t_coup=234.0) ! for which the saturation vapor pressure is calculated 29 30 REAL DDT0 ! iteration parameter 31 PARAMETER (DDT0=.01) 32 33 REAL ztfondue ! parameter to calculate melting fraction of precipitation 34 PARAMETER (ztfondue=278.15) 35 36 REAL temp_nowater ! temperature below which liquid water no longer exists 37 PARAMETER (temp_nowater=233.15) 38 39 REAL, SAVE :: rain_int_min=0.001 ! Minimum local rain intensity [mm/s] before the decrease in associated precipitation fraction 40 !$OMP THREADPRIVATE(rain_int_min) 41 42 REAL, SAVE :: a_tr_sca(4) ! Variables for tracers temporary: alpha parameter for scavenging, 4 possible scavenging processes 27 REAL, SAVE, PROTECTED :: t_coup=234.0 ! temperature threshold which determines the phase 28 ! for which the saturation vapor pressure is calculated 29 !$OMP THREADPRIVATE(t_coup) 30 REAL, SAVE, PROTECTED :: DDT0=0.01 ! iteration parameter 31 !$OMP THREADPRIVATE(DDT0) 32 33 REAL, SAVE, PROTECTED :: ztfondue=278.15 ! parameter to calculate melting fraction of precipitation 34 !$OMP THREADPRIVATE(ztfondue) 35 36 REAL, SAVE, PROTECTED :: temp_nowater=233.15 ! temperature below which liquid water no longer exists 37 !$OMP THREADPRIVATE(temp_nowater) 38 39 REAL, SAVE, PROTECTED :: a_tr_sca(4) ! Variables for tracers temporary: alpha parameter for scavenging, 4 possible scavenging processes 43 40 !$OMP THREADPRIVATE(a_tr_sca) 44 41 45 INTEGER, SAVE :: iflag_mpc_bl=0! flag to activate boundary layer mixed phase cloud param42 INTEGER, SAVE, PROTECTED :: iflag_mpc_bl=0 ! flag to activate boundary layer mixed phase cloud param 46 43 !$OMP THREADPRIVATE(iflag_mpc_bl) 47 44 48 LOGICAL, SAVE :: ok_radocond_snow=.false.! take into account the mass of ice precip in the cloud ice content seen by radiation45 LOGICAL, SAVE, PROTECTED :: ok_radocond_snow=.false. ! take into account the mass of ice precip in the cloud ice content seen by radiation 49 46 !$OMP THREADPRIVATE(ok_radocond_snow) 50 47 51 REAL, SAVE :: t_glace_min=258.0! lower-bound temperature parameter for cloud phase determination48 REAL, SAVE, PROTECTED :: t_glace_min=258.0 ! lower-bound temperature parameter for cloud phase determination 52 49 !$OMP THREADPRIVATE(t_glace_min) 53 50 54 REAL, SAVE :: t_glace_max=273.15! upper-bound temperature parameter for cloud phase determination51 REAL, SAVE, PROTECTED :: t_glace_max=273.15 ! upper-bound temperature parameter for cloud phase determination 55 52 !$OMP THREADPRIVATE(t_glace_max) 56 53 57 REAL, SAVE :: exposant_glace=1.0! parameter for cloud phase determination54 REAL, SAVE, PROTECTED :: exposant_glace=1.0 ! parameter for cloud phase determination 58 55 !$OMP THREADPRIVATE(exposant_glace) 59 56 60 INTEGER, SAVE :: iflag_vice=0! which expression for ice crystall fall velocity57 INTEGER, SAVE, PROTECTED :: iflag_vice=0 ! which expression for ice crystall fall velocity 61 58 !$OMP THREADPRIVATE(iflag_vice) 62 59 63 INTEGER, SAVE :: iflag_t_glace=0! which expression for cloud phase partitioning60 INTEGER, SAVE, PROTECTED :: iflag_t_glace=0 ! which expression for cloud phase partitioning 64 61 !$OMP THREADPRIVATE(iflag_t_glace) 65 62 66 INTEGER, SAVE :: iflag_cloudth_vert=0! option for determining cloud fraction and content in convective boundary layers63 INTEGER, SAVE, PROTECTED :: iflag_cloudth_vert=0 ! option for determining cloud fraction and content in convective boundary layers 67 64 !$OMP THREADPRIVATE(iflag_cloudth_vert) 68 65 69 INTEGER, SAVE :: iflag_gammasat=0! which threshold for homogeneous nucleation below -40oC66 INTEGER, SAVE, PROTECTED :: iflag_gammasat=0 ! which threshold for homogeneous nucleation below -40oC 70 67 !$OMP THREADPRIVATE(iflag_gammasat) 71 68 72 INTEGER, SAVE :: iflag_rain_incloud_vol=0! use of volume cloud fraction for rain autoconversion69 INTEGER, SAVE, PROTECTED :: iflag_rain_incloud_vol=0 ! use of volume cloud fraction for rain autoconversion 73 70 !$OMP THREADPRIVATE(iflag_rain_incloud_vol) 74 71 75 INTEGER, SAVE :: iflag_bergeron=0! bergeron effect for liquid precipitation treatment72 INTEGER, SAVE, PROTECTED :: iflag_bergeron=0 ! bergeron effect for liquid precipitation treatment 76 73 !$OMP THREADPRIVATE(iflag_bergeron) 77 74 78 INTEGER, SAVE :: iflag_fisrtilp_qsat=0! qsat adjustment (iterative) during autoconversion75 INTEGER, SAVE, PROTECTED :: iflag_fisrtilp_qsat=0 ! qsat adjustment (iterative) during autoconversion 79 76 !$OMP THREADPRIVATE(iflag_fisrtilp_qsat) 80 77 81 INTEGER, SAVE :: iflag_pdf=0! type of subgrid scale qtot pdf78 INTEGER, SAVE, PROTECTED :: iflag_pdf=0 ! type of subgrid scale qtot pdf 82 79 !$OMP THREADPRIVATE(iflag_pdf) 83 80 84 INTEGER, SAVE :: iflag_autoconversion=0! autoconversion option81 INTEGER, SAVE, PROTECTED :: iflag_autoconversion=0 ! autoconversion option 85 82 !$OMP THREADPRIVATE(iflag_autoconversion) 86 83 87 LOGICAL, SAVE :: reevap_ice=.false.! no liquid precip for T< threshold84 LOGICAL, SAVE, PROTECTED :: reevap_ice=.false. ! no liquid precip for T< threshold 88 85 !$OMP THREADPRIVATE(reevap_ice) 89 86 90 REAL, SAVE :: cld_lc_lsc=2.6e-4! liquid autoconversion coefficient, stratiform rain87 REAL, SAVE, PROTECTED :: cld_lc_lsc=2.6e-4 ! liquid autoconversion coefficient, stratiform rain 91 88 !$OMP THREADPRIVATE(cld_lc_lsc) 92 89 93 REAL, SAVE :: cld_lc_con=2.6e-4 ! liquid autoconversion coefficient, convective rain90 REAL, SAVE, PROTECTED :: cld_lc_con=2.6e-4 ! liquid autoconversion coefficient, convective rain 94 91 !$OMP THREADPRIVATE(cld_lc_con) 95 92 96 REAL, SAVE :: cld_tau_lsc=3600. ! liquid autoconversion timescale, stratiform rain93 REAL, SAVE, PROTECTED :: cld_tau_lsc=3600. ! liquid autoconversion timescale, stratiform rain 97 94 !$OMP THREADPRIVATE(cld_tau_lsc) 98 95 99 REAL, SAVE :: cld_tau_con=3600. ! liquid autoconversion timescale, convective rain96 REAL, SAVE, PROTECTED :: cld_tau_con=3600. ! liquid autoconversion timescale, convective rain 100 97 !$OMP THREADPRIVATE(cld_tau_con) 101 98 102 REAL, SAVE :: cld_expo_lsc=2. ! liquid autoconversion threshold exponent, stratiform rain99 REAL, SAVE, PROTECTED :: cld_expo_lsc=2. ! liquid autoconversion threshold exponent, stratiform rain 103 100 !$OMP THREADPRIVATE(cld_expo_lsc) 104 101 105 REAL, SAVE :: cld_expo_con=2. ! liquid autoconversion threshold exponent, convective rain102 REAL, SAVE, PROTECTED :: cld_expo_con=2. ! liquid autoconversion threshold exponent, convective rain 106 103 !$OMP THREADPRIVATE(cld_expo_con) 107 104 108 REAL, SAVE :: ffallv_lsc=1. ! tuning coefficient crystal fall velocity, stratiform105 REAL, SAVE, PROTECTED :: ffallv_lsc=1. ! tuning coefficient crystal fall velocity, stratiform 109 106 !$OMP THREADPRIVATE(ffallv_lsc) 110 107 111 REAL, SAVE :: ffallv_con=1. ! tuning coefficient crystal fall velocity, convective108 REAL, SAVE, PROTECTED :: ffallv_con=1. ! tuning coefficient crystal fall velocity, convective 112 109 !$OMP THREADPRIVATE(ffallv_con) 113 110 114 REAL, SAVE :: coef_eva=2e-5 ! tuning coefficient liquid precip evaporation111 REAL, SAVE, PROTECTED :: coef_eva=2e-5 ! tuning coefficient liquid precip evaporation 115 112 !$OMP THREADPRIVATE(coef_eva) 116 113 117 REAL, SAVE :: coef_eva_i ! tuning coefficient ice precip sublimation114 REAL, SAVE, PROTECTED :: coef_eva_i ! tuning coefficient ice precip sublimation 118 115 !$OMP THREADPRIVATE(coef_eva_i) 119 116 120 REAL cice_velo ! factor in the ice fall velocity formulation 121 PARAMETER (cice_velo=1.645) 122 123 REAL dice_velo ! exponent in the ice fall velocity formulation 124 PARAMETER (dice_velo=0.16) 125 126 REAL, SAVE :: dist_liq=300. ! typical deph of cloud-top liquid layer in mpcs 117 REAL, SAVE, PROTECTED :: expo_eva=0.5 ! tuning coefficient liquid precip evaporation 118 !$OMP THREADPRIVATE(expo_eva) 119 120 REAL, SAVE, PROTECTED :: expo_eva_i ! tuning coefficient ice precip sublimation 121 !$OMP THREADPRIVATE(expo_eva_i) 122 123 REAL, SAVE, PROTECTED :: cice_velo=1.645 ! factor in the ice fall velocity formulation 124 !$OMP THREADPRIVATE(cice_velo) 125 126 REAL, SAVE, PROTECTED :: dice_velo=0.16 ! exponent in the ice fall velocity formulation 127 !$OMP THREADPRIVATE(dice_velo) 128 129 REAL, SAVE, PROTECTED :: dist_liq=300. ! typical deph of cloud-top liquid layer in mpcs 127 130 !$OMP THREADPRIVATE(dist_liq) 128 131 129 REAL, SAVE :: tresh_cl=0.0 ! cloud fraction threshold for cloud top search132 REAL, SAVE, PROTECTED :: tresh_cl=0.0 ! cloud fraction threshold for cloud top search 130 133 !$OMP THREADPRIVATE(tresh_cl) 131 134 135 !--Parameters for poprecip 136 LOGICAL, SAVE, PROTECTED :: ok_poprecip=.FALSE. ! use the processes-oriented formulation of precipitations 137 !$OMP THREADPRIVATE(ok_poprecip) 138 139 REAL, SAVE, PROTECTED :: rain_int_min=0.001 ! Minimum local rain intensity [mm/s] before the decrease in associated precipitation fraction 140 !$OMP THREADPRIVATE(rain_int_min) 141 142 REAL, SAVE, PROTECTED :: thresh_precip_frac=1.E-6 ! precipitation fraction threshold TODO [-] 143 !$OMP THREADPRIVATE(thresh_precip_frac) 144 145 REAL, SAVE, PROTECTED :: gamma_col=1. ! A COMMENTER TODO [-] 146 !$OMP THREADPRIVATE(gamma_col) 147 148 REAL, SAVE, PROTECTED :: gamma_agg=1. ! A COMMENTER TODO [-] 149 !$OMP THREADPRIVATE(gamma_agg) 150 151 REAL, SAVE, PROTECTED :: gamma_rim=1. ! A COMMENTER TODO [-] 152 !$OMP THREADPRIVATE(gamma_rim) 153 154 REAL, SAVE, PROTECTED :: rho_rain=1000. ! A COMMENTER TODO [kg/m3] 155 !$OMP THREADPRIVATE(rho_rain) 156 157 REAL, SAVE, PROTECTED :: rho_snow=500. ! A COMMENTER TODO [kg/m3] 158 !$OMP THREADPRIVATE(rho_snow) 159 160 REAL, SAVE, PROTECTED :: r_rain=100.E-6 ! A COMMENTER TODO [m] 161 !$OMP THREADPRIVATE(r_rain) 162 163 REAL, SAVE, PROTECTED :: r_snow=100.E-6 ! A COMMENTER TODO [m] 164 !$OMP THREADPRIVATE(r_snow) 165 166 REAL, SAVE, PROTECTED :: Eff_rain_liq=1.0 ! A COMMENTER TODO [-] 167 !$OMP THREADPRIVATE(Eff_rain_liq) 168 169 REAL, SAVE, PROTECTED :: Eff_snow_ice=0.5 ! A COMMENTER TODO [-] 170 !$OMP THREADPRIVATE(Eff_snow_ice) 171 172 REAL, SAVE, PROTECTED :: Eff_snow_liq=1.0 ! A COMMENTER TODO [-] 173 !$OMP THREADPRIVATE(Eff_snow_liq) 174 175 REAL, SAVE, PROTECTED :: tau_auto_snow_min=1800. ! A COMMENTER TODO [s] 176 !$OMP THREADPRIVATE(tau_auto_snow_min) 177 178 REAL, SAVE, PROTECTED :: tau_auto_snow_max=7200. ! A COMMENTER TODO [s] 179 !$OMP THREADPRIVATE(tau_auto_snow_max) 180 181 REAL, SAVE, PROTECTED :: eps=1.E-10 ! A COMMENTER TODO [-] 182 !$OMP THREADPRIVATE(eps) 183 !--End of the parameters for poprecip 184 132 185 ! Two parameters used for lmdz_lscp_old only 133 INTEGER, SAVE :: iflag_oldbug_fisrtilp=0, fl_cor_ebil186 INTEGER, SAVE, PROTECTED :: iflag_oldbug_fisrtilp=0, fl_cor_ebil 134 187 !$OMP THREADPRIVATE(iflag_oldbug_fisrtilp,fl_cor_ebil) 135 188 … … 173 226 CALL getin_p('iflag_evap_prec',iflag_evap_prec) 174 227 CALL getin_p('seuil_neb',seuil_neb) 175 CALL getin_p('rain_int_min',rain_int_min)176 228 CALL getin_p('iflag_mpc_bl',iflag_mpc_bl) 177 229 CALL getin_p('ok_radocond_snow',ok_radocond_snow) … … 199 251 coef_eva_i=coef_eva 200 252 CALL getin_p('coef_eva_i',coef_eva_i) 253 CALL getin_p('expo_eva',expo_eva) 254 expo_eva_i=expo_eva 255 CALL getin_p('expo_eva_i',expo_eva_i) 201 256 CALL getin_p('iflag_autoconversion',iflag_autoconversion) 202 257 CALL getin_p('dist_liq',dist_liq) 203 258 CALL getin_p('tresh_cl',tresh_cl) 204 259 CALL getin_p('iflag_oldbug_fisrtilp',iflag_oldbug_fisrtilp) 205 260 CALL getin_p('ok_poprecip',ok_poprecip) 261 CALL getin_p('rain_int_min',rain_int_min) 262 CALL getin_p('gamma_agg',gamma_agg) 263 CALL getin_p('gamma_col',gamma_col) 206 264 207 265 … … 210 268 WRITE(lunout,*) 'lscp_ini, iflag_evap_prec:', iflag_evap_prec 211 269 WRITE(lunout,*) 'lscp_ini, seuil_neb:', seuil_neb 212 WRITE(lunout,*) 'lscp_ini, rain_int_min:', rain_int_min213 270 WRITE(lunout,*) 'lscp_ini, iflag_mpc_bl:', iflag_mpc_bl 214 271 WRITE(lunout,*) 'lscp_ini, ok_radocond_snow:', ok_radocond_snow … … 235 292 WRITE(lunout,*) 'lscp_ini, coef_eva', coef_eva 236 293 WRITE(lunout,*) 'lscp_ini, coef_eva_i', coef_eva_i 294 WRITE(lunout,*) 'lscp_ini, expo_eva', expo_eva 295 WRITE(lunout,*) 'lscp_ini, expo_eva_i', expo_eva_i 237 296 WRITE(lunout,*) 'lscp_ini, iflag_autoconversion', iflag_autoconversion 238 297 WRITE(lunout,*) 'lscp_ini, dist_liq', dist_liq … … 240 299 WRITE(lunout,*) 'lscp_ini, iflag_oldbug_fisrtilp', iflag_oldbug_fisrtilp 241 300 WRITE(lunout,*) 'lscp_ini, fl_cor_ebil', fl_cor_ebil 301 WRITE(lunout,*) 'lscp_ini, ok_poprecip', ok_poprecip 302 WRITE(lunout,*) 'lscp_ini, rain_int_min:', rain_int_min 303 WRITE(lunout,*) 'lscp_ini, gamma_agg:', gamma_agg 304 WRITE(lunout,*) 'lscp_ini, gamma_col:', gamma_col 242 305 243 306 … … 262 325 263 326 327 ! check consistency between the use of the processes-oriented precipitation formulations 328 ! and other options 329 330 IF (ok_poprecip) THEN 331 IF ((iflag_evap_prec .LT. 4) .OR. (niter_lscp .GT. 1)) THEN 332 abort_message = 'in lscp, ok_poprecip=y requires iflag_evap_prec >= 4 and niter_lscp=1' 333 CALL abort_physic (modname,abort_message,1) 334 ENDIF 335 ENDIF 336 337 264 338 !AA Temporary initialisation 265 339 a_tr_sca(1) = -0.5 -
LMDZ6/trunk/libf/phylmd/phys_local_var_mod.F90
r4753 r4803 538 538 539 539 540 !--POPRECIP variables 541 REAL, SAVE, ALLOCATABLE :: dqreva(:,:) 542 !$OMP THREADPRIVATE(dqreva) 543 REAL, SAVE, ALLOCATABLE :: dqrauto(:,:) 544 !$OMP THREADPRIVATE(dqrauto) 545 REAL, SAVE, ALLOCATABLE :: dqrcol(:,:) 546 !$OMP THREADPRIVATE(dqrcol) 547 REAL, SAVE, ALLOCATABLE :: dqrmelt(:,:) 548 !$OMP THREADPRIVATE(dqrmelt) 549 REAL, SAVE, ALLOCATABLE :: dqrfreez(:,:) 550 !$OMP THREADPRIVATE(dqrfreez) 551 REAL, SAVE, ALLOCATABLE :: dqssub(:,:) 552 !$OMP THREADPRIVATE(dqssub) 553 REAL, SAVE, ALLOCATABLE :: dqsauto(:,:) 554 !$OMP THREADPRIVATE(dqsauto) 555 REAL, SAVE, ALLOCATABLE :: dqsagg(:,:) 556 !$OMP THREADPRIVATE(dqsagg) 557 REAL, SAVE, ALLOCATABLE :: dqsrim(:,:) 558 !$OMP THREADPRIVATE(dqsrim) 559 REAL, SAVE, ALLOCATABLE :: dqsmelt(:,:) 560 !$OMP THREADPRIVATE(dqsmelt) 561 REAL, SAVE, ALLOCATABLE :: dqsfreez(:,:) 562 !$OMP THREADPRIVATE(dqsfreez) 563 564 565 566 567 540 568 #ifdef CPP_StratAer 541 569 ! … … 928 956 ALLOCATE(zqsatl(klon,klev), zqsats(klon,klev)) 929 957 ALLOCATE(Tcontr(klon,klev), qcontr(klon,klev), qcontr2(klon,klev), fcontrN(klon,klev), fcontrP(klon,klev)) 958 959 !--POPRECIP variables 960 ALLOCATE(dqreva(klon,klev),dqssub(klon,klev)) 961 ALLOCATE(dqrauto(klon,klev), dqrcol(klon,klev), dqrmelt(klon,klev), dqrfreez(klon,klev)) 962 ALLOCATE(dqsauto(klon,klev), dqsagg(klon,klev), dqsrim(klon,klev), dqsmelt(klon,klev), dqsfreez(klon,klev)) 930 963 931 964 #ifdef CPP_StratAer … … 1239 1272 DEALLOCATE(Tcontr, qcontr, qcontr2, fcontrN, fcontrP) 1240 1273 1274 !--POPRECIP variables 1275 DEALLOCATE(dqreva,dqssub) 1276 DEALLOCATE(dqrauto,dqrcol,dqrmelt,dqrfreez) 1277 DEALLOCATE(dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez) 1278 1241 1279 #ifdef CPP_StratAer 1242 1280 ! variables for strat. aerosol CK -
LMDZ6/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r4773 r4803 1556 1556 TYPE(ctrl_out), SAVE :: o_pfracld = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1557 1557 'pfracld', 'LS precipitation fraction cloudy part', '-', (/ ('', i=1, 10) /)) 1558 TYPE(ctrl_out), SAVE :: o_dqreva = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1559 'dqreva', 'LS rain tendency due to evaporation', 'kg/m2/s', (/ ('', i=1, 10) /)) 1560 TYPE(ctrl_out), SAVE :: o_dqrauto = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1561 'dqrauto', 'LS rain tendency due to autoconversion', 'kg/m2/s', (/ ('', i=1, 10) /)) 1562 TYPE(ctrl_out), SAVE :: o_dqrcol = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1563 'dqrcol', 'LS rain tendency due to collection', 'kg/m2/s', (/ ('', i=1, 10) /)) 1564 TYPE(ctrl_out), SAVE :: o_dqrmelt = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1565 'dqrmelt', 'LS rain tendency due to melting', 'kg/m2/s', (/ ('', i=1, 10) /)) 1566 TYPE(ctrl_out), SAVE :: o_dqrfreez = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1567 'dqrfreez', 'LS rain tendency due to freezing', 'kg/m2/s', (/ ('', i=1, 10) /)) 1568 TYPE(ctrl_out), SAVE :: o_dqssub = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1569 'dqssub', 'LS snow tendency due to sublimation', 'kg/m2/s', (/ ('', i=1, 10) /)) 1570 TYPE(ctrl_out), SAVE :: o_dqsauto = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1571 'dqsauto', 'LS snow tendency due to autoconversion', 'kg/m2/s', (/ ('', i=1, 10) /)) 1572 TYPE(ctrl_out), SAVE :: o_dqsagg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1573 'dqsagg', 'LS snow tendency due to aggragation', 'kg/m2/s', (/ ('', i=1, 10) /)) 1574 TYPE(ctrl_out), SAVE :: o_dqsrim = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1575 'dqsrim', 'LS snow tendency due to riming', 'kg/m2/s', (/ ('', i=1, 10) /)) 1576 TYPE(ctrl_out), SAVE :: o_dqsmelt = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1577 'dqsmelt', 'LS snow tendency due to melting', 'kg/m2/s', (/ ('', i=1, 10) /)) 1578 TYPE(ctrl_out), SAVE :: o_dqsfreez = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1579 'dqsfreez', 'LS snow tendency due to freezing', 'kg/m2/s', (/ ('', i=1, 10) /)) 1558 1580 TYPE(ctrl_out), SAVE :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1559 1581 'rhum', 'Relative humidity', '-', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90
r4773 r4803 141 141 o_rnebls, o_rneblsvol, o_rhum, o_rhl, o_rhi, o_ozone, o_ozone_light, & 142 142 o_pfraclr, o_pfracld, & 143 o_dqreva, o_dqrauto, o_dqrcol, o_dqrmelt, o_dqrfreez, & 144 o_dqssub, o_dqsauto, o_dqsagg, o_dqsrim, o_dqsmelt, o_dqsfreez, & 143 145 o_duphy, o_dtphy, o_dqphy, o_dqphy2d, o_dqlphy, o_dqlphy2d, & 144 146 o_dqsphy, o_dqsphy2d, o_dqbsphy, o_dqbsphy2d, o_albe_srf, o_z0m_srf, o_z0h_srf, & … … 255 257 256 258 USE ice_sursat_mod, ONLY: flight_m, flight_h2o 257 259 USE lmdz_lscp_ini, ONLY: ok_poprecip 260 258 261 USE phys_output_ctrlout_mod, ONLY: o_heat_volc, o_cool_volc !NL 259 262 USE phys_state_var_mod, ONLY: heat_volc, cool_volc !NL … … 357 360 zphi, u_seri, v_seri, omega, cldfra, & 358 361 rneb, rnebjn, rneblsvol, zx_rh, zx_rhl, zx_rhi, & 359 pfraclr, pfracld, d_t_dyn, & 362 pfraclr, pfracld, & 363 dqreva, dqssub, & 364 dqrauto,dqrcol,dqrmelt,dqrfreez, & 365 dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez, & 366 d_t_dyn, & 360 367 d_q_dyn, d_ql_dyn, d_qs_dyn, d_qbs_dyn, & 361 368 d_q_dyn2d, d_ql_dyn2d, d_qs_dyn2d, d_qbs_dyn2d, & … … 1942 1949 CALL histwrite_phy(o_pfraclr, pfraclr) 1943 1950 CALL histwrite_phy(o_pfracld, pfracld) 1951 IF (ok_poprecip) THEN 1952 CALL histwrite_phy(o_dqreva, dqreva) 1953 CALL histwrite_phy(o_dqrauto, dqrauto) 1954 CALL histwrite_phy(o_dqrcol, dqrcol) 1955 CALL histwrite_phy(o_dqrmelt, dqrmelt) 1956 CALL histwrite_phy(o_dqrfreez, dqrfreez) 1957 CALL histwrite_phy(o_dqssub, dqssub) 1958 CALL histwrite_phy(o_dqsauto, dqsauto) 1959 CALL histwrite_phy(o_dqsagg, dqsagg) 1960 CALL histwrite_phy(o_dqsmelt, dqsmelt) 1961 CALL histwrite_phy(o_dqsfreez, dqsfreez) 1962 CALL histwrite_phy(o_dqsrim, dqsrim) 1963 ENDIF 1944 1964 ENDIF 1945 1965 -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r4790 r4803 195 195 east_gwstress,west_gwstress, & 196 196 d_q_ch4, & 197 ! proprecip 198 dqreva, dqssub, & 199 dqrauto,dqrcol,dqrmelt,dqrfreez, & 200 dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez, & 197 201 ! Special RRTM 198 202 ZLWFT0_i,ZSWFT0_i,ZFLDN0, & … … 3887 3891 qclr, qcld, qss, qvc, rnebclr, rnebss, gamma_ss, & 3888 3892 Tcontr, qcontr, qcontr2, fcontrN, fcontrP , & 3889 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 3893 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, & 3894 dqreva,dqssub,dqrauto,dqrcol,dqrmelt,dqrfreez,dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez) 3890 3895 3891 3896 -
LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90
r4753 r4803 639 639 !$OMP THREADPRIVATE(fcontrP) 640 640 641 !--POPRECIP variables 642 REAL, SAVE, ALLOCATABLE :: dqreva(:,:) 643 !$OMP THREADPRIVATE(dqreva) 644 REAL, SAVE, ALLOCATABLE :: dqrauto(:,:) 645 !$OMP THREADPRIVATE(dqrauto) 646 REAL, SAVE, ALLOCATABLE :: dqrcol(:,:) 647 !$OMP THREADPRIVATE(dqrcol) 648 REAL, SAVE, ALLOCATABLE :: dqrmelt(:,:) 649 !$OMP THREADPRIVATE(dqrmelt) 650 REAL, SAVE, ALLOCATABLE :: dqrfreez(:,:) 651 !$OMP THREADPRIVATE(dqrfreez) 652 REAL, SAVE, ALLOCATABLE :: dqssub(:,:) 653 !$OMP THREADPRIVATE(dqssub) 654 REAL, SAVE, ALLOCATABLE :: dqsauto(:,:) 655 !$OMP THREADPRIVATE(dqsauto) 656 REAL, SAVE, ALLOCATABLE :: dqsagg(:,:) 657 !$OMP THREADPRIVATE(dqsagg) 658 REAL, SAVE, ALLOCATABLE :: dqsrim(:,:) 659 !$OMP THREADPRIVATE(dqsrim) 660 REAL, SAVE, ALLOCATABLE :: dqsmelt(:,:) 661 !$OMP THREADPRIVATE(dqsmelt) 662 REAL, SAVE, ALLOCATABLE :: dqsfreez(:,:) 663 !$OMP THREADPRIVATE(dqsfreez) 664 665 666 667 668 641 669 #ifdef CPP_StratAer 642 670 ! … … 1085 1113 ALLOCATE(zqsatl(klon,klev), zqsats(klon,klev)) 1086 1114 ALLOCATE(Tcontr(klon,klev), qcontr(klon,klev), qcontr2(klon,klev), fcontrN(klon,klev), fcontrP(klon,klev)) 1115 1116 !--POPRECIP variables 1117 ALLOCATE(dqreva(klon,klev),dqssub(klon,klev)) 1118 ALLOCATE(dqrauto(klon,klev), dqrcol(klon,klev), dqrmelt(klon,klev), dqrfreez(klon,klev)) 1119 ALLOCATE(dqsauto(klon,klev), dqsagg(klon,klev), dqsrim(klon,klev), dqsmelt(klon,klev), dqsfreez(klon,klev)) 1087 1120 1088 1121 #ifdef CPP_StratAer … … 1444 1477 DEALLOCATE(Tcontr, qcontr, qcontr2, fcontrN, fcontrP) 1445 1478 1479 !--POPRECIP variables 1480 DEALLOCATE(dqreva,dqssub) 1481 DEALLOCATE(dqrauto,dqrcol,dqrmelt,dqrfreez) 1482 DEALLOCATE(dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez) 1483 1446 1484 #ifdef CPP_StratAer 1447 1485 ! variables for strat. aerosol CK -
LMDZ6/trunk/libf/phylmdiso/phys_output_ctrlout_mod.F90
r4576 r4803 1477 1477 TYPE(ctrl_out), SAVE :: o_pfracld = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1478 1478 'pfracld', 'LS precipitation fraction cloudy part', '-', (/ ('', i=1, 10) /)) 1479 TYPE(ctrl_out), SAVE :: o_dqreva = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1480 'dqreva', 'LS rain tendency due to evaporation', 'kg/m2/s', (/ ('', i=1, 10) /)) 1481 TYPE(ctrl_out), SAVE :: o_dqrauto = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1482 'dqrauto', 'LS rain tendency due to autoconversion', 'kg/m2/s', (/ ('', i=1, 10) /)) 1483 TYPE(ctrl_out), SAVE :: o_dqrcol = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1484 'dqrcol', 'LS rain tendency due to collection', 'kg/m2/s', (/ ('', i=1, 10) /)) 1485 TYPE(ctrl_out), SAVE :: o_dqrmelt = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1486 'dqrmelt', 'LS rain tendency due to melting', 'kg/m2/s', (/ ('', i=1, 10) /)) 1487 TYPE(ctrl_out), SAVE :: o_dqrfreez = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1488 'dqrfreez', 'LS rain tendency due to freezing', 'kg/m2/s', (/ ('', i=1, 10) /)) 1489 TYPE(ctrl_out), SAVE :: o_dqssub = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1490 'dqssub', 'LS snow tendency due to sublimation', 'kg/m2/s', (/ ('', i=1, 10) /)) 1491 TYPE(ctrl_out), SAVE :: o_dqsauto = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1492 'dqsauto', 'LS snow tendency due to autoconversion', 'kg/m2/s', (/ ('', i=1, 10) /)) 1493 TYPE(ctrl_out), SAVE :: o_dqsagg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1494 'dqsagg', 'LS snow tendency due to aggragation', 'kg/m2/s', (/ ('', i=1, 10) /)) 1495 TYPE(ctrl_out), SAVE :: o_dqsrim = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1496 'dqsrim', 'LS snow tendency due to riming', 'kg/m2/s', (/ ('', i=1, 10) /)) 1497 TYPE(ctrl_out), SAVE :: o_dqsmelt = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1498 'dqsmelt', 'LS snow tendency due to melting', 'kg/m2/s', (/ ('', i=1, 10) /)) 1499 TYPE(ctrl_out), SAVE :: o_dqsfreez = ctrl_out((/ 11, 11, 11, 11, 11, 11, 11, 11, 11, 11/), & 1500 'dqsfreez', 'LS snow tendency due to freezing', 'kg/m2/s', (/ ('', i=1, 10) /)) 1479 1501 TYPE(ctrl_out), SAVE :: o_rhum = ctrl_out((/ 2, 5, 10, 10, 10, 10, 11, 11, 11, 11/), & 1480 1502 'rhum', 'Relative humidity', '-', (/ ('', i=1, 10) /)) -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r4792 r4803 229 229 east_gwstress,west_gwstress, & 230 230 d_q_ch4, & 231 ! proprecip 232 dqreva, dqssub, & 233 dqrauto,dqrcol,dqrmelt,dqrfreez, & 234 dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez, & 231 235 ! Special RRTM 232 236 ZLWFT0_i,ZSWFT0_i,ZFLDN0, & … … 4876 4880 CALL lscp(klon,klev,phys_tstep,missing_val,paprs,pplay, & 4877 4881 t_seri, q_seri,ptconv,ratqs, & 4878 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, rneb_seri, & 4882 d_t_lsc, d_q_lsc, d_ql_lsc, d_qi_lsc, rneb, rneblsvol, rneb_seri, & 4879 4883 pfraclr,pfracld, & 4880 4884 radocond, picefra, rain_lsc, snow_lsc, & … … 4885 4889 qclr, qcld, qss, qvc, rnebclr, rnebss, gamma_ss, & 4886 4890 Tcontr, qcontr, qcontr2, fcontrN, fcontrP , & 4887 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv) 4891 cloudth_sth,cloudth_senv,cloudth_sigmath,cloudth_sigmaenv, & 4892 dqreva,dqssub,dqrauto,dqrcol,dqrmelt,dqrfreez,dqsauto,dqsagg,dqsrim,dqsmelt,dqsfreez) 4888 4893 4889 4894
Note: See TracChangeset
for help on using the changeset viewer.