Changeset 4392 for LMDZ6/trunk
- Timestamp:
- Jan 23, 2023, 2:36:19 PM (20 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/lscp_mod.F90
r4380 r4392 329 329 fcontrP(:,:) = 0.0 330 330 331 !c_iso: variable initialisation for iso 332 333 331 334 !=============================================================================== 332 335 ! BEGINNING OF VERTICAL LOOP FROM TOP TO BOTTOM … … 341 344 zt(i)=t(i,k) 342 345 zq(i)=q(i,k) 346 !c_iso init of iso 343 347 ENDDO 344 348 … … 390 394 ! -------------------------------------------------------------------- 391 395 392 IF (iflag_evap_prec.GE.1) THEN 396 IF (iflag_evap_prec.GE.1) THEN ! useless -> to be removed 393 397 394 398 ! Calculation of saturation specific humidity … … 406 410 407 411 ! LTP: we only account for precipitation evaporation in the clear-sky (iflag_evap_prec=4). 412 ! c_iso: likely important to distinguish cs from neb isotope precipitation 413 408 414 IF (iflag_evap_prec.EQ.4) THEN 409 415 zrfl(i) = zrflclr(i) … … 478 484 479 485 480 ! New solid and liquid precipitation fluxes 486 ! New solid and liquid precipitation fluxes after evap and sublimation 481 487 zrfln(i) = Max(0.,zrfl(i) - zqev*(paprs(i,k)-paprs(i,k+1)) & 482 488 /RG/dtime) 483 489 zifln(i) = Max(0.,zifl(i) - zqevi*(paprs(i,k)-paprs(i,k+1)) & 484 490 /RG/dtime) 491 485 492 486 493 ! vapor, temperature, precip fluxes update … … 501 508 zifl(i) = zifln(i) 502 509 510 ! c_iso here call_reevap that updates isotopic zrfl, zifl (in inout) 511 ! due to evap + sublim 512 513 503 514 IF (iflag_evap_prec.EQ.4) THEN 504 515 zrflclr(i) = zrfl(i) … … 511 522 ENDIF 512 523 513 514 ! CR Be careful: ice melting has been moved 524 ! c_iso duplicate for isotopes or loop on isotopes 525 526 ! Melting: 515 527 zmelt = ((zt(i)-273.15)/(ztfondue-273.15)) ! JYG 516 528 ! precip fraction that is melted 517 529 zmelt = MIN(MAX(zmelt,0.),1.) 530 518 531 ! Ice melting 519 532 IF (iflag_evap_prec.EQ.4) THEN … … 524 537 zrfl(i)=zrfl(i)+zmelt*zifl(i) 525 538 ENDIF 539 ! c_iso: melting of isotopic precipi with zmelt (no fractionation) 526 540 527 541 ! Latent heat of melting with precipitation thermalization … … 536 550 zifl(i)=zifl(i)*(1.-zmelt) 537 551 ENDIF 552 !c_iso: same for isotopic precip. 538 553 539 554 ELSE … … 563 578 zq(i)=1.e-15 564 579 ENDIF 580 ! c_iso: do something similar for isotopes 565 581 566 582 ENDDO … … 826 842 ENDIF 827 843 844 ! c_iso : routine that computes in-cloud supersaturation 845 ! c_iso condensation of isotopes (zcond, zsursat, zfice, zq in input) 846 828 847 ! temperature update due to phase change 829 848 zt(i) = zt(i) + (1.-zfice(i))*zcond(i) & … … 885 904 ziflclr(i) = ziflclr(i) + d_zifl_cld_clr(i) - d_zifl_clr_cld(i) 886 905 906 ! c_iso do the same thing for isotopes precip 887 907 ENDDO 888 908 ENDIF … … 894 914 zoliqi(i)= zoliq(i)*zfice(i) 895 915 zoliql(i)= zoliq(i)*(1.-zfice(i)) 916 ! c_iso : initialisation of zoliq* also for isotopes 896 917 zrho(i,k) = pplay(i,k) / zt(i) / RD 897 918 zdz(i) = (paprs(i,k)-paprs(i,k+1)) / (zrho(i,k)*RG) … … 925 946 zsnow=0. 926 947 zprecip=0. 948 ! c_iso same init for isotopes. Externalisation? 927 949 928 950 IF (zneb(i).EQ.seuil_neb) THEN … … 949 971 ! reduces the in-cloud water). 950 972 973 974 ! warning: here should be zoliql? 951 975 IF ((iflag_cloudth_vert.GE.3).AND.(iflag_rain_incloud_vol.EQ.1)) THEN 952 976 zchau = zct *dtime/REAL(ninter) * zoliq(i) & … … 966 990 zoliqi(i) = MAX(zoliq(i)*zfice(i)-1.*zsnow , 0.0) 967 991 zoliq(i) = MAX(zoliq(i)-zprecip , 0.0) 992 993 ! c_iso: call isotope_conversion (for readibility) or duplicate 968 994 969 995 radliq(i,k) = radliq(i,k) + zoliq(i)/REAL(ninter+1) … … 1021 1047 zqpreci(i) = max (zqpreci(i) - Deltaqprecl - Deltaq, 0.) 1022 1048 1049 ! c_iso : mv here condensation of isotopes + redispatchage en precip 1050 1023 1051 IF (iflag_evap_prec.EQ.4) THEN 1024 1052 zrflcld(i) = zrflcld(i)+zqprecl(i) & … … 1035 1063 *(paprs(i,k)-paprs(i,k+1))/(RG*dtime) 1036 1064 ENDIF 1065 ! c_iso : same for isotopes 1037 1066 1038 1067 ENDIF ! rneb>0 … … 1076 1105 d_qi(i,k) = zfice(i)*zoliq(i) 1077 1106 d_q(i,k) = zq(i) - q(i,k) 1107 ! c_iso: same for isotopes 1078 1108 d_t(i,k) = zt(i) - t(i,k) 1079 1109 ENDDO … … 1191 1221 snow(i) = zifl(i) 1192 1222 rain(i) = zrfl(i) 1223 ! c_iso final output 1193 1224 ENDDO 1194 1225
Note: See TracChangeset
for help on using the changeset viewer.