Changeset 2205 for LMDZ5/trunk/libf/phylmd/cv3_routines.F90
- Timestamp:
- Feb 13, 2015, 8:22:32 AM (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/cv3_routines.F90
r2110 r2205 1 1 2 2 ! $Id$ 3 3 4 4 5 … … 2763 2764 cbmf, upwd, dnwd, dnwd0, ma, mip, & 2764 2765 tls, tps, qcondc, wd, & 2765 ftd, fqd )2766 ftd, fqd, qnk, qtc, sigt, tau_cld_cv, coefw_cld_cv) 2766 2767 2767 2768 IMPLICIT NONE … … 2800 2801 !input/output: 2801 2802 INTEGER iflag(nloc) 2803 REAL,INTENT(in) :: tau_cld_cv, coefw_cld_cv 2802 2804 ! 2803 2805 !outputs: … … 2811 2813 REAL tls(nloc, nd), tps(nloc, nd) 2812 2814 REAL qcondc(nloc, nd) ! cld 2815 REAL qtc(nloc,nd), sigt(nloc,nd) ! cld 2813 2816 REAL wd(nloc) ! gust 2814 2817 REAL cbmf(nloc) … … 2830 2833 REAL qcond(nloc, nd), nqcond(nloc, nd), wa(nloc, nd) ! cld 2831 2834 REAL siga(nloc, nd), sax(nloc, nd), mac(nloc, nd) ! cld 2832 2835 REAL sument(nloc), sigment(nloc,nd), qtment(nloc,nd) ! cld 2836 REAL qnk(nloc) 2833 2837 REAL sumdq !jyg 2834 2838 ! … … 2861 2865 qcondc(il, i) = 0.0 ! cld 2862 2866 qcond(il, i) = 0.0 ! cld 2867 qtc(il, i) = 0.0 ! cld 2868 qtment(il, i) = 0.0 ! cld 2869 sigment(il, i) = 0.0 ! cld 2870 sigt(il, i) = 0.0 ! cld 2863 2871 nqcond(il, i) = 0.0 ! cld 2864 2872 END DO … … 3234 3242 ! (saturated updrafts resulting from mixing) ! cld 3235 3243 qcond(il, i) = qcond(il, i) + (elij(il,k,i)-awat(il)) ! cld 3236 nqcond(il, i) = nqcond(il, i) + 1. ! cld 3244 qtment(il, i) = qtment(il, i) + qent(il,k,i) ! cld 3245 nqcond(il, i) = nqcond(il, i) + 1. ! cld 3237 3246 END IF ! i 3238 3247 END DO … … 3310 3319 ! (saturated downdrafts resulting from mixing) ! cld 3311 3320 qcond(il, i) = qcond(il, i) + elij(il, k, i) ! cld 3312 nqcond(il, i) = nqcond(il, i) + 1. ! cld 3321 qtment(il, i) = qent(il,k,i) + qtment(il,i) ! cld 3322 nqcond(il, i) = nqcond(il, i) + 1. ! cld 3313 3323 END IF ! cld 3314 3324 END DO ! cld … … 3319 3329 IF (i<=inb(il) .AND. nent(il,i)==0 .AND. iflag(il)<=1) THEN ! cld 3320 3330 qcond(il, i) = qcond(il, i) + (1.-ep(il,i))*clw(il, i) ! cld 3331 qtment(il, i) = qent(il,k,i) + qtment(il,i) ! cld 3321 3332 nqcond(il, i) = nqcond(il, i) + 1. ! cld 3322 3333 END IF ! cld … … 3326 3337 IF (i<=inb(il) .AND. nqcond(il,i)/=0 .AND. iflag(il)<=1) THEN ! cld 3327 3338 qcond(il, i) = qcond(il, i)/nqcond(il, i) ! cld 3339 qtment(il, i) = qtment(il,i)/nqcond(il, i) ! cld 3328 3340 END IF ! cld 3329 3341 END DO … … 3788 3800 END IF ! cld 3789 3801 END DO ! cld 3790 END DO ! cld 3791 3792 DO i = 1, nl ! cld 3802 END DO 3803 ! cld 3804 DO i = 1, nl 3805 3806 ! 14/01/15 AJ je remets les parties manquantes cf JYG 3807 ! Initialize sument to 0 3808 3809 DO il = 1,ncum 3810 sument(il) = 0. 3811 ENDDO 3812 3813 ! Sum mixed mass fluxes in sument 3814 3815 DO k = 1,nl 3816 DO il = 1,ncum 3817 IF (k<=inb(il) .AND. i<=inb(il) .AND. iflag(il)<=1) THEN ! cld 3818 sument(il) =sument(il) + abs(ment(il,k,i)) 3819 ENDIF 3820 ENDDO ! il 3821 ENDDO ! k 3822 3823 ! 14/01/15 AJ delta n'a rien à faire là... 3793 3824 DO il = 1, ncum ! cld 3794 3825 IF (wa(il,i)>0.0 .AND. iflag(il)<=1) & ! cld 3795 siga(il, i) = mac(il, i)/wa(il, i) & ! cld 3796 *rrd*tvp(il, i)/p(il, i)/100./delta ! cld 3826 siga(il, i) = mac(il, i)/(coefw_cld_cv*wa(il, i)) & ! cld 3827 *rrd*tvp(il, i)/p(il, i)/100. ! cld 3828 3797 3829 siga(il, i) = min(siga(il,i), 1.0) ! cld 3798 ! IM cf. FH 3830 3831 ! IM cf. FH 3832 ! 14/01/15 AJ ne correspond pas à ce qui a été codé par JYG et SB 3833 3799 3834 IF (iflag_clw==0) THEN ! cld 3800 3835 qcondc(il, i) = siga(il, i)*clw(il, i)*(1.-ep(il,i)) & ! cld 3801 3836 +(1.-siga(il,i))*qcond(il, i) ! cld 3837 3838 3839 sigment(il,i)=sument(il)*tau_cld_cv/(ph(il,i)-ph(il,i+1)) ! cld 3840 sigment(il, i) = min(1.e-4+sigment(il,i), 1.0 - siga(il,i)) ! cld 3841 qtc(il, i) = (siga(il,i)*qnk(il)+sigment(il,i)*qtment(il,i)) & ! cld 3842 /(siga(il,i)+sigment(il,i)) ! cld 3843 sigt(il,i) = sigment(il, i) + siga(il, i) 3844 3845 ! qtc(il, i) = siga(il,i)*qnk(il)+(1.-siga(il,i))*qtment(il,i) ! cld 3846 print*,'BIGAUSSIAN CONV',siga(il,i),sigment(il,i),qtc(il,i) 3847 3802 3848 ELSE IF (iflag_clw==1) THEN ! cld 3803 3849 qcondc(il, i) = qcond(il, i) ! cld 3850 qtc(il,i) = qtment(il,i) ! cld 3804 3851 END IF ! cld 3805 3852
Note: See TracChangeset
for help on using the changeset viewer.