Changeset 2466
- Timestamp:
- Mar 14, 2016, 5:56:37 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/fisrtilp.F90
r2415 r2466 124 124 REAL dzfice(klon) 125 125 REAL zsolid 126 !!!! 127 ! Variables pour Bergeron 128 REAL zcp, coef1, DeltaT 129 REAL zqpreci(klon), zqprecl(klon) 126 130 ! 127 131 LOGICAL appel1er … … 457 461 458 462 !CR ATTENTION: deplacement de la fonte de la glace 459 zmelt = ((zt(i)-273.15)/(ztfondue-273.15))**2 463 !jyg : Bug !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! jyg 464 !!! zmelt = ((zt(i)-273.15)/(ztfondue-273.15))**2 !!!!!!!!! jyg 465 !jyg : Bug !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! jyg 466 zmelt = ((zt(i)-273.15)/(ztfondue-273.15)) ! jyg 460 467 zmelt = MIN(MAX(zmelt,0.),1.) 461 468 zrfl(i)=zrfl(i)+zmelt*zifl(i) … … 907 914 radliq(i,k) = radliq(i,k) + zoliq(i)/REAL(ninter+1) 908 915 ENDIF 909 ENDDO 910 ENDDO 911 ! 912 916 ENDDO ! i = 1,klon 917 ENDDO ! n = 1,ninter 918 ! 919 IF (.NOT. ice_thermo) THEN 913 920 DO i = 1, klon 914 921 IF (rneb(i,k).GT.0.0) THEN … … 919 926 ENDDO 920 927 ELSE 928 ! 929 !CR&JYG< 930 ! On prend en compte l'effet Bergeron dans les flux de precipitation : 931 ! Si T < 0 C, alors les precipitations liquides sont converties en glace, ce qui 932 ! provoque un accroissement de temperature DeltaT. L'effet de DeltaT sur le condensat 933 ! et les precipitations est grossierement pris en compte en linearisant les equations 934 ! et en approximant le processus de precipitation liquide par un processus a seuil. 935 ! On fait l'hypothese que le condensat nuageux n'est pas modifié dans cette opération. 936 ! Le condensat precipitant liquide est supprime (dans la limite DeltaT<273-T). 937 ! Le condensat precipitant solide est augmente. 938 ! La vapeur d'eau est augmentee. 939 ! 940 IF ((iflag_bergeron .EQ. 2)) THEN 941 DO i = 1, klon 942 IF (rneb(i,k) .GT. 0.0) THEN 943 zqpreci(i)=(zcond(i)-zoliq(i))*zfice(i) 944 zqprecl(i)=(zcond(i)-zoliq(i))*(1.-zfice(i)) 945 zcp=RCPD*(1.0+RVTMP2*(zq(i)+zcond(i))) 946 coef1 = RLMLT*zdqs(i)/RLVTT 947 DeltaT = max( min( RTT-zt(i), RLMLT*zqprecl(i)/zcp/(1.+coef1) ) , 0.) 948 zqpreci(i) = zqpreci(i) + zcp/RLMLT*DeltaT 949 zqprecl(i) = max( zqprecl(i) - zcp/RLMLT*(1.+coef1)*DeltaT, 0. ) 950 zcond(i) = max( zcond(i) - zcp/RLVTT*zdqs(i)*DeltaT, 0. ) 951 zq(i) = zq(i) + zcp/RLVTT*zdqs(i)*DeltaT 952 zt(i) = zt(i) + DeltaT 953 ENDIF ! rneb(i,k) .GT. 0.0 954 ENDDO 955 DO i = 1, klon 956 IF (rneb(i,k).GT.0.0) THEN 957 d_ql(i,k) = (1-zfice(i))*zoliq(i) 958 d_qi(i,k) = zfice(i)*zoliq(i) 959 zrfl(i) = zrfl(i)+ zqprecl(i) & 960 *(paprs(i,k)-paprs(i,k+1))/(RG*dtime) 961 zifl(i) = zifl(i)+ zqpreci(i) & 962 *(paprs(i,k)-paprs(i,k+1))/(RG*dtime) 963 ENDIF 964 ENDDO 965 !! 966 ELSE ! iflag_bergeron 967 !>CR&JYG 968 !! 921 969 DO i = 1, klon 922 970 IF (rneb(i,k).GT.0.0) THEN … … 940 988 941 989 !CR : on prend en compte l'effet Bergeron dans les flux de precipitation 942 if ((iflag_bergeron.eq.1).and.(zt(i).LT.273.15)) then990 IF ((iflag_bergeron .EQ. 1) .AND. (zt(i) .LT. 273.15)) THEN 943 991 zsolid = zrfl(i) 944 992 zifl(i) = zifl(i)+zrfl(i) … … 946 994 zt(i)=zt(i)+zsolid*(RG*dtime)/(paprs(i,k)-paprs(i,k+1)) & 947 995 *(RLSTT-RLVTT)/RCPD/(1.0+RVTMP2*zq(i)) 948 endif996 ENDIF ! (iflag_bergeron .EQ. 1) .AND. (zt(i) .LT. 273.15) 949 997 !RC 950 998 951 ENDIF 999 ENDIF ! rneb(i,k).GT.0.0 952 1000 ENDDO 953 ENDIF 1001 1002 ENDIF ! iflag_bergeron .EQ. 2 1003 ENDIF ! .NOT. ice_thermo 954 1004 955 1005 !CR: la fonte est faite au debut
Note: See TracChangeset
for help on using the changeset viewer.