Changeset 5082 for LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_old.F90
- Timestamp:
- Jul 19, 2024, 5:41:58 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_lscp_old.F90
r4830 r5082 213 213 !>LTP 214 214 215 ice_thermo = (iflag_ice_thermo .EQ. 1).OR.(iflag_ice_thermo .GE.3)215 ice_thermo = (iflag_ice_thermo == 1).OR.(iflag_ice_thermo >= 3) 216 216 zdelq=0.0 217 217 ctot_vol(1:klon,1:klev)=0.0 … … 224 224 WRITE(lunout,*) 'FISRTILP VERSION LUDO' 225 225 226 IF (ABS(dtime/REAL(ninter)-360.0) .GT.0.001) THEN226 IF (ABS(dtime/REAL(ninter)-360.0)>0.001) THEN 227 227 WRITE(lunout,*) 'fisrtilp: Ce n est pas prevu, voir Z.X.Li', dtime 228 228 WRITE(lunout,*) 'Je prefere un sous-intervalle de 6 minutes' … … 251 251 ! 252 252 !CR: on est oblige de definir des valeurs fisrt car les valeurs de newmicro ne sont pas les memes par defaut 253 IF (iflag_t_glace .EQ.0) THEN253 IF (iflag_t_glace==0) THEN 254 254 ! ztglace = RTT - 15.0 255 255 t_glace_min_old = RTT - 15.0 … … 352 352 ! - zmqc: masse de precip qui doit etre thermalisee 353 353 ! 354 IF(k .LE.klev-1) THEN354 IF(k<=klev-1) THEN 355 355 DO i = 1, klon 356 356 !IM … … 359 359 zcpair=RCPD*(1.0+RVTMP2*zq(i)) 360 360 zcpeau=RCPD*RVTMP2 361 if (fl_cor_ebil .GT.0) then361 if (fl_cor_ebil > 0) then 362 362 ! zmqc: masse de precip qui doit etre thermalisee avec l'air de la couche atm 363 363 ! pour s'assurer que la precip arrivant au sol aura bien la temperature de la … … 394 394 DO i = 1, klon 395 395 ! S'il y a des precipitations 396 IF (zrfl(i)+zifl(i) .GT.0.) THEN396 IF (zrfl(i)+zifl(i)>0.) THEN 397 397 ! Calcul du qsat 398 398 IF (thermcep) THEN … … 403 403 zqs(i)=zqs(i)*zcor 404 404 ELSE 405 IF (zt(i) .LT.t_coup) THEN405 IF (zt(i) < t_coup) THEN 406 406 zqs(i) = qsats(zt(i)) / pplay(i,k) 407 407 ELSE … … 416 416 DO i = 1, klon 417 417 ! S'il y a des precipitations 418 IF (zrfl(i)+zifl(i) .GT.0.) THEN418 IF (zrfl(i)+zifl(i)>0.) THEN 419 419 ! Evap max pour ne pas saturer la fraction sous le nuage 420 420 ! Evap max jusqu'à atteindre la saturation dans la partie … … 425 425 ! Ajout de la prise en compte des precip a thermiser 426 426 ! avec petite reecriture 427 if (fl_cor_ebil .GT.0) then ! nouveau427 if (fl_cor_ebil > 0) then ! nouveau 428 428 ! Calcul de l'evaporation du flux de precip herite 429 429 ! d'au-dessus … … 437 437 zrfln(i) = zrfl(i) - zqev*zmair(i)/dtime 438 438 ! Aucun flux liquide pour T < t_coup, on reevapore tout. 439 IF (zt(i) .LT.t_coup.and.reevap_ice) THEN439 IF (zt(i) < t_coup.and.reevap_ice) THEN 440 440 zrfln(i)=0. 441 441 zqev = (zrfl(i)-zrfln(i))/zmair(i)*dtime … … 461 461 /RG/dtime 462 462 ! Aucun flux liquide pour T < t_coup 463 IF (zt(i) .LT.t_coup.and.reevap_ice) zrfln(i)=0.463 IF (zt(i) < t_coup.and.reevap_ice) zrfln(i)=0. 464 464 ! Nouvelle vapeur 465 465 zq(i) = zq(i) - (zrfln(i)-zrfl(i)) & … … 485 485 !AJ< 486 486 ! S'il y a des precipitations 487 IF (zrfl(i)+zifl(i) .GT.0.) THEN487 IF (zrfl(i)+zifl(i)>0.) THEN 488 488 489 489 !LTP< … … 574 574 ! en conservant la proportion liquide / glace 575 575 576 IF (zqevt+zqevti .GT.zqev0) THEN576 IF (zqevt+zqevti>zqev0) THEN 577 577 zqev=zqev0*zqevt/(zqevt+zqevti) 578 578 zqevi=zqev0*zqevti/(zqevt+zqevti) … … 583 583 ! zqev=zqevt 584 584 ! zqevi=zqevti 585 IF (zqevt+zqevti .GT.0.) THEN585 IF (zqevt+zqevti>0.) THEN 586 586 zqev=MIN(zqev0*zqevt/(zqevt+zqevti),zqevt) 587 587 zqevi=MIN(zqev0*zqevti/(zqevt+zqevti),zqevti) … … 601 601 zq(i) = zq(i) - (zrfln(i)+zifln(i)-zrfl(i)-zifl(i)) & 602 602 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime 603 if (fl_cor_ebil .GT.0) then ! avec correction thermalisation des precips603 if (fl_cor_ebil > 0) then ! avec correction thermalisation des precips 604 604 zmqc(i) = zmqc(i) + (zrfln(i)+zifln(i)-zrfl(i)-zifl(i)) & 605 605 * (RG/(paprs(i,k)-paprs(i,k+1)))*dtime … … 626 626 zrflclr(i) = zrfl(i) 627 627 ziflclr(i) = zifl(i) 628 IF(zrflclr(i) + ziflclr(i) .LE.0) THEN628 IF(zrflclr(i) + ziflclr(i) <= 0) THEN 629 629 znebprecipclr(i) = 0. 630 630 ENDIF … … 652 652 zrfl(i)=zrfl(i)+zmelt*zifl(i) 653 653 ENDIF 654 if (fl_cor_ebil .LE.0) then654 if (fl_cor_ebil <= 0) then 655 655 ! the following line should not be here. Indeed, if zifl is modified 656 656 ! now, zifl(i)*zmelt is no more the amount of ice that has melt … … 659 659 end if 660 660 ! Chaleur latente de fusion 661 if (fl_cor_ebil .GT.0) then ! avec correction thermalisation des precips661 if (fl_cor_ebil > 0) then ! avec correction thermalisation des precips 662 662 zt(i)=zt(i)-zifl(i)*zmelt*(RG*dtime)/(paprs(i,k)-paprs(i,k+1)) & 663 663 *RLMLT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i))) … … 666 666 *RLMLT/RCPD/(1.0+RVTMP2*zq(i)) 667 667 end if 668 if (fl_cor_ebil .GT.0) then ! correction bug, deplacement ligne precedente668 if (fl_cor_ebil > 0) then ! correction bug, deplacement ligne precedente 669 669 !<LTP 670 670 IF (iflag_evap_prec==4) THEN … … 698 698 zdelta = MAX(0.,SIGN(1.,RTT-zt(i))) 699 699 zcvm5 = R5LES*RLVTT*(1.-zdelta) + R5IES*RLSTT*zdelta 700 if (fl_cor_ebil .GT.0) then ! nouveau700 if (fl_cor_ebil > 0) then ! nouveau 701 701 zcvm5 = zcvm5 /RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i))) 702 702 else … … 713 713 ELSE 714 714 DO i = 1, klon 715 IF (zt(i) .LT.t_coup) THEN715 IF (zt(i)<t_coup) THEN 716 716 zqs(i) = qsats(zt(i))/pplay(i,k) 717 717 zdqs(i) = dqsats(zt(i),zqs(i)) … … 761 761 ! P2.A.0> Calcul des grandeurs nuageuses une pdf en creneau 762 762 ! ---------------------------------------------------------------- 763 if (iflag_pdf .eq.0) then763 if (iflag_pdf==0) then 764 764 765 765 ! version creneau de (Li, 1998) … … 776 776 ! ---------------------------------------------------------------- 777 777 do i=1,klon 778 if(zq(i) .lt.1.e-15) then778 if(zq(i)<1.e-15) then 779 779 ncoreczq=ncoreczq+1 780 780 zq(i)=1.e-15 … … 851 851 852 852 !Boucle iterative: ATTENTION, l'option -1 n'est plus activable ici 853 if (iflag_fisrtilp_qsat .ge.0) then853 if (iflag_fisrtilp_qsat>=0) then 854 854 ! Iteration pour condensation avec variation de qsat(T) 855 855 ! ----------------------------------------------------- … … 860 860 ! !! convergence = .true. tant que l'on n'a pas converge !! 861 861 ! ------------------------------ 862 convergence(i)=abs(DT(i)) .gt.DDT0863 if ((convergence(i).or.(n_i(i) .eq.0)).and.lognormale(i)) then862 convergence(i)=abs(DT(i))>DDT0 863 if ((convergence(i).or.(n_i(i)==0)).and.lognormale(i)) then 864 864 ! si on n'a pas converge 865 865 ! … … 876 876 zdelta = MAX(0.,SIGN(1.,RTT-Tbef(i))) 877 877 else 878 if (iflag_t_glace .eq.0) then878 if (iflag_t_glace==0) then 879 879 zdelta = MAX(0.,SIGN(1.,t_glace_min_old-Tbef(i))) 880 else if (iflag_t_glace .ge.1) then881 if (iflag_oldbug_fisrtilp .EQ.0) then880 else if (iflag_t_glace>=1) then 881 if (iflag_oldbug_fisrtilp==0) then 882 882 zdelta = MAX(0.,SIGN(1.,t_glace_max-Tbef(i))) 883 883 else … … 889 889 ! Calcul de rneb, qzn et zcond pour les PDF lognormales 890 890 zcvm5 = R5LES*RLVTT*(1.-zdelta) + R5IES*RLSTT*zdelta 891 if (fl_cor_ebil .GT.0) then891 if (fl_cor_ebil > 0) then 892 892 zcvm5 = zcvm5 /RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i))) 893 893 else … … 911 911 zpdf_e2(i)=1.-erf(zpdf_e2(i)) 912 912 913 if (zpdf_e1(i) .lt.1.e-10) then913 if (zpdf_e1(i)<1.e-10) then 914 914 rneb(i,k)=0. 915 915 zqn(i)=zqs(i) … … 938 938 ! -------------------------- 939 939 do i=1,klon 940 if ((convergence(i).or.(n_i(i) .eq.0)).and.lognormale(i)) then940 if ((convergence(i).or.(n_i(i)==0)).and.lognormale(i)) then 941 941 942 942 qlbef(i)=max(0.,zqn(i)-zqs(i)) 943 if (fl_cor_ebil .GT.0) then943 if (fl_cor_ebil > 0) then 944 944 num=-Tbef(i)+zt(i)+rneb(i,k)*RLVTT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i)))*qlbef(i) 945 945 else … … 954 954 else ! if (.not. ice_thermo) 955 955 ! -------------------------- 956 if (iflag_t_glace .ge.1) then956 if (iflag_t_glace>=1) then 957 957 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 958 958 endif 959 959 960 960 do i=1,klon 961 if ((convergence(i).or.(n_i(i) .eq.0)).and.lognormale(i)) then961 if ((convergence(i).or.(n_i(i)==0)).and.lognormale(i)) then 962 962 963 if (iflag_t_glace .eq.0) then963 if (iflag_t_glace==0) then 964 964 zfice(i) = 1.0 - (Tbef(i)-t_glace_min_old) / (RTT-t_glace_min_old) 965 965 zfice(i) = MIN(MAX(zfice(i),0.0),1.0) … … 969 969 endif 970 970 971 if (iflag_t_glace .ge.1.and.zfice(i)>0.) then971 if (iflag_t_glace>=1.and.zfice(i)>0.) then 972 972 dzfice(i)= exposant_glace * zfice(i)**(exposant_glace-1) & 973 973 & / (t_glace_min - t_glace_max) 974 974 endif 975 975 976 if ((zfice(i) .eq.0).or.(zfice(i).eq.1)) then976 if ((zfice(i)==0).or.(zfice(i)==1)) then 977 977 dzfice(i)=0. 978 978 endif 979 979 980 if (zfice(i) .lt.1) then980 if (zfice(i)<1) then 981 981 cste=RLVTT 982 982 else … … 985 985 986 986 qlbef(i)=max(0.,zqn(i)-zqs(i)) 987 if (fl_cor_ebil .GT.0) then987 if (fl_cor_ebil > 0) then 988 988 num = -Tbef(i)+zt(i)+rneb(i,k)*((1-zfice(i))*RLVTT & 989 989 & +zfice(i)*RLSTT)/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i)))*qlbef(i) … … 1020 1020 ! pour la re-activer, prendre iflag_fisrtilp_qsat=0 et 1021 1021 ! activer les lignes suivantes: 1022 IF (1 .eq.0) THEN1022 IF (1==0) THEN 1023 1023 DO i=1,klon 1024 IF (rneb(i,k) .LE.0.0) THEN1024 IF (rneb(i,k) <= 0.0) THEN 1025 1025 zqn(i) = 0.0 1026 1026 rneb(i,k) = 0.0 1027 1027 zcond(i) = 0.0 1028 1028 rhcl(i,k)=zq(i)/zqs(i) 1029 ELSE IF (rneb(i,k) .GE.1.0) THEN1029 ELSE IF (rneb(i,k) >= 1.0) THEN 1030 1030 zqn(i) = zq(i) 1031 1031 rneb(i,k) = 1.0 … … 1055 1055 ! et de l'humidite relative ciel-clair (rhcl) 1056 1056 DO i=1,klon 1057 IF (rneb(i,k) .LE.0.0) THEN1057 IF (rneb(i,k) <= 0.0) THEN 1058 1058 zqn(i) = 0.0 1059 1059 rneb(i,k) = 0.0 1060 1060 zcond(i) = 0.0 1061 1061 rhcl(i,k)=zq(i)/zqs(i) 1062 ELSE IF (rneb(i,k) .GE.1.0) THEN1062 ELSE IF (rneb(i,k) >= 1.0) THEN 1063 1063 zqn(i) = zq(i) 1064 1064 rneb(i,k) = 1.0 … … 1086 1086 ! note JLD: attention, rhcl non calcule. Ca peut avoir des consequences? 1087 1087 DO i = 1, klon 1088 IF (zq(i) .GT.zqs(i)) THEN1088 IF (zq(i)>zqs(i)) THEN 1089 1089 rneb(i,k) = 1.0 1090 1090 ELSE … … 1109 1109 ! 1110 1110 IF (.NOT. ice_thermo) THEN 1111 if (iflag_fisrtilp_qsat .lt.1) then1111 if (iflag_fisrtilp_qsat<1) then 1112 1112 DO i = 1, klon 1113 1113 zt(i) = zt(i) + zcond(i) * RLVTT/RCPD/(1.0+RVTMP2*zq(i)) 1114 1114 ENDDO 1115 else if (iflag_fisrtilp_qsat .gt.0) then1115 else if (iflag_fisrtilp_qsat>0) then 1116 1116 DO i= 1, klon 1117 if (fl_cor_ebil .GT.0) then1117 if (fl_cor_ebil > 0) then 1118 1118 zt(i) = zt(i) + zcond(i) * RLVTT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i)+zcond(i))) 1119 1119 else … … 1123 1123 endif 1124 1124 ELSE 1125 if (iflag_t_glace .ge.1) then1125 if (iflag_t_glace>=1) then 1126 1126 CALL icefrac_lsc(klon,zt(:),pplay(:,k)/paprs(:,1),zfice(:)) 1127 1127 endif 1128 if (iflag_fisrtilp_qsat .lt.1) then1128 if (iflag_fisrtilp_qsat<1) then 1129 1129 DO i = 1, klon 1130 1130 ! JBM: icefrac_lsc is now a function contained in icefrac_lsc_mod 1131 1131 ! zfice(i) = icefrac_lsc(zt(i), t_glace_min, & 1132 1132 ! t_glace_max, exposant_glace) 1133 if (iflag_t_glace .eq.0) then1133 if (iflag_t_glace==0) then 1134 1134 zfice(i) = 1.0 - (zt(i)-t_glace_min_old) / (RTT-t_glace_min_old) 1135 1135 zfice(i) = MIN(MAX(zfice(i),0.0),1.0) … … 1144 1144 ! zfice(i) = icefrac_lsc(zt(i), t_glace_min, & 1145 1145 ! t_glace_max, exposant_glace) 1146 if (iflag_t_glace .eq.0) then1146 if (iflag_t_glace==0) then 1147 1147 zfice(i) = 1.0 - (zt(i)-t_glace_min_old) / (RTT-t_glace_min_old) 1148 1148 zfice(i) = MIN(MAX(zfice(i),0.0),1.0) 1149 1149 zfice(i) = zfice(i)**exposant_glace_old 1150 1150 endif 1151 if (fl_cor_ebil .GT.0) then1151 if (fl_cor_ebil > 0) then 1152 1152 zt(i) = zt(i) + (1.-zfice(i))*zcond(i) & 1153 1153 & * RLVTT/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i)+zcond(i))) & … … 1188 1188 !1) Cloudy to clear air 1189 1189 d_znebprecip_cld_clr(i) = znebprecipcld(i) - min(rneb(i,k),znebprecipcld(i)) 1190 IF (znebprecipcld(i) .GT.0) THEN1190 IF (znebprecipcld(i) > 0) THEN 1191 1191 d_zrfl_cld_clr(i) = d_znebprecip_cld_clr(i)/znebprecipcld(i)*zrflcld(i) 1192 1192 d_zifl_cld_clr(i) = d_znebprecip_cld_clr(i)/znebprecipcld(i)*ziflcld(i) … … 1199 1199 d_znebprecip_clr_cld(i) = max(0., min(znebprecipclr(i), rneb(i,k) & 1200 1200 - d_tot_zneb(i) - zneb(i))) 1201 IF (znebprecipclr(i) .GT.0) THEN1201 IF (znebprecipclr(i) > 0) THEN 1202 1202 d_zrfl_clr_cld(i) = d_znebprecip_clr_cld(i)/znebprecipclr(i)*zrflclr(i) 1203 1203 d_zifl_clr_cld(i) = d_znebprecip_clr_cld(i)/znebprecipclr(i)*ziflclr(i) … … 1224 1224 ! Initialisation de zoliq (eau condensee moyenne dans la maille) 1225 1225 DO i = 1, klon 1226 IF (rneb(i,k) .GT.0.0) THEN1226 IF (rneb(i,k)>0.0) THEN 1227 1227 zoliq(i) = zcond(i) 1228 1228 zrho(i) = pplay(i,k) / zt(i) / RD … … 1232 1232 !AJ< 1233 1233 IF (.NOT. ice_thermo) THEN 1234 IF (iflag_t_glace .EQ.0) THEN1234 IF (iflag_t_glace==0) THEN 1235 1235 DO i = 1, klon 1236 IF (rneb(i,k) .GT.0.0) THEN1236 IF (rneb(i,k)>0.0) THEN 1237 1237 zfice(i) = 1.0 - (zt(i)-t_glace_min_old) / (273.13-t_glace_min_old) 1238 1238 zfice(i) = MIN(MAX(zfice(i),0.0),1.0) … … 1261 1261 ! ---------------------------------------------------------------- 1262 1262 DO i = 1, klon 1263 IF (rneb(i,k) .GT.0.0) THEN1263 IF (rneb(i,k)>0.0) THEN 1264 1264 zneb(i) = MAX(rneb(i,k), seuil_neb) 1265 1265 ! zt(i) = zt(i)+zcond(i)*zfice(i)*RLMLT/RCPD/(1.0+RVTMP2*zq(i)) … … 1272 1272 DO n = 1, ninter 1273 1273 DO i = 1, klon 1274 IF (rneb(i,k) .GT.0.0) THEN1274 IF (rneb(i,k)>0.0) THEN 1275 1275 zrhol(i) = zrho(i) * zoliq(i) / zneb(i) 1276 1276 ! Initialization of zpluie and zice: 1277 1277 zpluie=0 1278 1278 zice=0 1279 IF (zneb(i) .EQ.seuil_neb) THEN1279 IF (zneb(i)==seuil_neb) THEN 1280 1280 ztot = 0.0 1281 1281 ELSE … … 1337 1337 IF (.NOT. ice_thermo) THEN 1338 1338 DO i = 1, klon 1339 IF (rneb(i,k) .GT.0.0) THEN1339 IF (rneb(i,k)>0.0) THEN 1340 1340 d_ql(i,k) = zoliq(i) 1341 1341 zrfl(i) = zrfl(i)+ MAX(zcond(i)-zoliq(i),0.0) & … … 1356 1356 ! La vapeur d'eau est augmentee. 1357 1357 ! 1358 IF ((iflag_bergeron .EQ.2)) THEN1358 IF ((iflag_bergeron == 2)) THEN 1359 1359 DO i = 1, klon 1360 IF (rneb(i,k) .GT.0.0) THEN1360 IF (rneb(i,k) > 0.0) THEN 1361 1361 zqpreci(i)=(zcond(i)-zoliq(i))*zfice(i) 1362 1362 zqprecl(i)=(zcond(i)-zoliq(i))*(1.-zfice(i)) 1363 if (fl_cor_ebil .GT.0) then1363 if (fl_cor_ebil > 0) then 1364 1364 zcp=RCPD*(1.0+RVTMP2*(zq(i)+zmqc(i)+zcond(i))) 1365 1365 coef1 = rneb(i,k)*RLSTT/zcp*zdqsdT_raw(i) … … 1395 1395 ENDDO 1396 1396 DO i = 1, klon 1397 IF (rneb(i,k) .GT.0.0) THEN1397 IF (rneb(i,k)>0.0) THEN 1398 1398 d_ql(i,k) = (1-zfice(i))*zoliq(i) 1399 1399 d_qi(i,k) = zfice(i)*zoliq(i) … … 1423 1423 !! 1424 1424 DO i = 1, klon 1425 IF (rneb(i,k) .GT.0.0) THEN1425 IF (rneb(i,k)>0.0) THEN 1426 1426 !CR on prend en compte la phase glace 1427 1427 !JLD inutile car on ne passe jamais ici si .not.ice_thermo … … 1456 1456 1457 1457 !CR : on prend en compte l'effet Bergeron dans les flux de precipitation 1458 IF ((iflag_bergeron .EQ. 1) .AND. (zt(i) .LT.273.15)) THEN1458 IF ((iflag_bergeron == 1) .AND. (zt(i) < 273.15)) THEN 1459 1459 !<LTP 1460 1460 IF (iflag_evap_prec == 4) THEN … … 1473 1473 ENDIF!iflag_evap_prec==4 1474 1474 1475 if (fl_cor_ebil .GT.0) then1475 if (fl_cor_ebil > 0) then 1476 1476 zt(i)=zt(i)+zsolid*(RG*dtime)/(paprs(i,k)-paprs(i,k+1)) & 1477 1477 *(RLSTT-RLVTT)/RCPD/(1.0+RVTMP2*(zq(i)+zmqc(i))) … … 1510 1510 IF (iflag_evap_prec==4) THEN 1511 1511 DO i=1, klon 1512 IF (zrflclr(i) + ziflclr(i) .GT.0 ) THEN1512 IF (zrflclr(i) + ziflclr(i) > 0 ) THEN 1513 1513 znebprecipclr(i) = min(znebprecipclr(i), max(zrflclr(i) & 1514 1514 /(znebprecipclr(i)*rain_int_min), & … … 1518 1518 ENDIF 1519 1519 1520 IF (zrflcld(i) + ziflcld(i) .GT.0 ) THEN1520 IF (zrflcld(i) + ziflcld(i) > 0 ) THEN 1521 1521 znebprecipcld(i) = min(znebprecipcld(i), & 1522 1522 max(zrflcld(i)/(znebprecipcld(i)*rain_int_min), & … … 1536 1536 IF (.NOT. ice_thermo) THEN 1537 1537 DO i = 1, klon 1538 IF (zt(i) .LT.RTT) THEN1538 IF (zt(i)<RTT) THEN 1539 1539 psfl(i,k)=zrfl(i) 1540 1540 ELSE … … 1571 1571 DO i = 1,klon 1572 1572 ! 1573 if(zcond(i) .gt.zoliq(i)+1.e-10) then1573 if(zcond(i)>zoliq(i)+1.e-10) then 1574 1574 beta(i,k) = (zcond(i)-zoliq(i))/zcond(i)/dtime 1575 1575 else … … 1578 1578 zprec_cond(i) = MAX(zcond(i)-zoliq(i),0.0) & 1579 1579 * (paprs(i,k)-paprs(i,k+1))/RG 1580 IF (rneb(i,k) .GT.0.0.and.zprec_cond(i).gt.0.) THEN1580 IF (rneb(i,k)>0.0.and.zprec_cond(i)>0.) THEN 1581 1581 !AA lessivage nucleation LMD5 dans la couche elle-meme 1582 IF (iflag_t_glace .EQ.0) THEN1583 if (t(i,k) .GE.t_glace_min_old) THEN1582 IF (iflag_t_glace==0) THEN 1583 if (t(i,k) >= t_glace_min_old) THEN 1584 1584 zalpha_tr = a_tr_sca(3) 1585 1585 else … … 1587 1587 endif 1588 1588 ELSE ! of IF (iflag_t_glace.EQ.0) 1589 if (t(i,k) .GE.t_glace_min) THEN1589 if (t(i,k) >= t_glace_min) THEN 1590 1590 zalpha_tr = a_tr_sca(3) 1591 1591 else … … 1607 1607 DO kk = k-1, 1, -1 1608 1608 DO i = 1, klon 1609 IF (rneb(i,k) .GT.0.0.and.zprec_cond(i).gt.0.) THEN1610 IF (iflag_t_glace .EQ.0) THEN1611 if (t(i,kk) .GE.t_glace_min_old) THEN1609 IF (rneb(i,k)>0.0.and.zprec_cond(i)>0.) THEN 1610 IF (iflag_t_glace==0) THEN 1611 if (t(i,kk) >= t_glace_min_old) THEN 1612 1612 zalpha_tr = a_tr_sca(1) 1613 1613 else … … 1615 1615 endif 1616 1616 ELSE ! of IF (iflag_t_glace.EQ.0) 1617 if (t(i,kk) .GE.t_glace_min) THEN1617 if (t(i,kk) >= t_glace_min) THEN 1618 1618 zalpha_tr = a_tr_sca(1) 1619 1619 else … … 1639 1639 IF (.NOT.ice_thermo) THEN 1640 1640 DO i = 1, klon 1641 IF ((t(i,1)+d_t(i,1)) .LT.RTT) THEN1641 IF ((t(i,1)+d_t(i,1)) < RTT) THEN 1642 1642 !AJ< 1643 1643 ! snow(i) = zrfl(i)
Note: See TracChangeset
for help on using the changeset viewer.