Changeset 2853 for LMDZ5/trunk/libf/phylmd/concvl.F90
- Timestamp:
- Apr 14, 2017, 1:25:26 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/concvl.F90
r2824 r2853 13 13 !RomP >>> 14 14 !! . da,phi,mp,dd_t,dd_q,lalim_conv,wght_th) 15 da, phi, mp, phi 2, d1a, dam, sij, clw, elij, & ! RomP15 da, phi, mp, phii, d1a, dam, sij, clw, elij, & ! RomP 16 16 dd_t, dd_q, lalim_conv, wght_th, & ! RomP 17 17 evap, ep, epmlmMm, eplaMm, & ! RomP … … 87 87 include "clesphys.h" 88 88 89 INTEGER iflag_clos 90 91 REAL dtime, paprs(klon, klev+1), pplay(klon, klev) 92 INTEGER k_upper_cv 93 REAL t(klon, klev), q(klon, klev), u(klon, klev), v(klon, klev) 94 REAL t_wake(klon, klev), q_wake(klon, klev) 95 REAL s_wake(klon) 96 REAL tra(klon, klev, nbtr) 97 INTEGER ntra 98 REAL sig1(klon, klev), w01(klon, klev), ptop2(klon) 99 REAL pmflxr(klon, klev+1), pmflxs(klon, klev+1) 100 REAL Ale(klon), Alp(klon) 101 102 REAL d_t(klon, klev), d_q(klon, klev), d_u(klon, klev), d_v(klon, klev) 103 REAL dd_t(klon, klev), dd_q(klon, klev) 104 REAL d_tra(klon, klev, nbtr) 105 REAL rain(klon), snow(klon) 106 107 INTEGER kbas(klon), ktop(klon) 108 REAL em_ph(klon, klev+1), em_p(klon, klev) 109 REAL upwd(klon, klev), dnwd(klon, klev), dnwdbis(klon, klev) 110 111 !! REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev) !jyg 112 REAL Ma(klon, klev), mip(klon, klev), Vprecip(klon, klev+1) !jyg 113 REAL Vprecipi(klon, klev+1) !jyg 114 REAL wght(klon, klev) !RL 115 116 REAL da(klon, klev), phi(klon, klev, klev), mp(klon, klev) 89 INTEGER, INTENT(IN) :: iflag_clos 90 REAL, INTENT(IN) :: dtime 91 REAL, DIMENSION(klon,klev), INTENT(IN) :: pplay 92 REAL, DIMENSION(klon,klev+1), INTENT(IN) :: paprs 93 INTEGER, INTENT(IN) :: k_upper_cv 94 REAL, DIMENSION(klon,klev), INTENT(IN) :: t, q, u, v 95 REAL, DIMENSION(klon,klev), INTENT(IN) :: t_wake, q_wake 96 REAL, DIMENSION(klon), INTENT(IN) :: s_wake 97 REAL, DIMENSION(klon,klev, nbtr),INTENT(IN) :: tra 98 INTEGER, INTENT(IN) :: ntra 99 REAL, DIMENSION(klon), INTENT(IN) :: Ale, Alp 100 !CR:test: on passe lentr et alim_star des thermiques 101 INTEGER, DIMENSION(klon), INTENT(IN) :: lalim_conv 102 REAL, DIMENSION(klon,klev), INTENT(IN) :: wght_th 103 104 REAL, DIMENSION(klon,klev), INTENT(INOUT) :: sig1, w01 105 106 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d_t, d_q, d_u, d_v 107 REAL, DIMENSION(klon,klev, nbtr),INTENT(OUT) :: d_tra 108 REAL, DIMENSION(klon), INTENT(OUT) :: rain, snow 109 110 INTEGER, DIMENSION(klon), INTENT(OUT) :: kbas, ktop 111 REAL, DIMENSION(klon), INTENT(OUT) :: sigd 112 REAL, DIMENSION(klon), INTENT(OUT) :: cbmf, plcl, plfc, wbeff 113 REAL, DIMENSION(klon), INTENT(OUT) :: convoccur 114 REAL, DIMENSION(klon,klev), INTENT(OUT) :: upwd, dnwd, dnwdbis 115 116 !! REAL Ma(klon,klev), mip(klon,klev),Vprecip(klon,klev) !jyg 117 REAL, DIMENSION(klon,klev), INTENT(OUT) :: Ma, mip 118 REAL, DIMENSION(klon,klev+1), INTENT(OUT) :: Vprecip !jyg 119 REAL, DIMENSION(klon), INTENT(OUT) :: cape, cin 120 REAL, DIMENSION(klon,klev), INTENT(OUT) :: tvp 121 REAL, DIMENSION(klon,klev), INTENT(OUT) :: Tconv 122 INTEGER, DIMENSION(klon), INTENT(OUT) :: iflag 123 REAL, DIMENSION(klon), INTENT(OUT) :: pbase, bbase 124 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dtvpdt1, dtvpdq1 125 REAL, DIMENSION(klon), INTENT(OUT) :: dplcldt, dplcldr 126 REAL, DIMENSION(klon,klev), INTENT(OUT) :: qcondc 127 REAL, DIMENSION(klon), INTENT(OUT) :: wd 128 REAL, DIMENSION(klon,klev+1), INTENT(OUT) :: pmflxr, pmflxs 129 130 REAL, DIMENSION(klon,klev), INTENT(OUT) :: da, mp 131 REAL, DIMENSION(klon,klev,klev),INTENT(OUT) :: phi 117 132 ! RomP >>> 118 REAL phi2(klon, klev, klev) 119 REAL d1a(klon, klev), dam(klon, klev) 120 REAL sij(klon, klev, klev), clw(klon, klev), elij(klon, klev, klev) 121 REAL wdtrainA(klon, klev), wdtrainM(klon, klev) 122 REAL evap(klon, klev), ep(klon, klev) 123 REAL epmlmMm(klon, klev, klev), eplaMm(klon, klev) 133 REAL, DIMENSION(klon,klev,klev),INTENT(OUT) :: phii 134 REAL, DIMENSION(klon,klev), INTENT(OUT) :: d1a, dam 135 REAL, DIMENSION(klon,klev,klev),INTENT(OUT) :: sij, elij 136 REAL, DIMENSION(klon,klev), INTENT(OUT) :: clw 137 REAL, DIMENSION(klon,klev), INTENT(OUT) :: dd_t, dd_q 138 REAL, DIMENSION(klon,klev), INTENT(OUT) :: evap, ep 139 REAL, DIMENSION(klon,klev), INTENT(OUT) :: eplaMm 140 REAL, DIMENSION(klon,klev,klev), INTENT(OUT) :: epmlmMm 141 REAL, DIMENSION(klon,klev), INTENT(OUT) :: wdtrainA, wdtrainM 124 142 ! RomP <<< 125 REAL cape(klon), cin(klon), tvp(klon, klev) 126 REAL Tconv(klon, klev) 127 128 !CR:test: on passe lentr et alim_star des thermiques 129 INTEGER lalim_conv(klon) 130 REAL wght_th(klon, klev) 131 REAL em_sig1feed ! sigma at lower bound of feeding layer 132 REAL em_sig2feed ! sigma at upper bound of feeding layer 133 REAL em_wght(klev) ! weight density determining the feeding mixture 143 REAL, DIMENSION(klon,klev), INTENT(OUT) :: wght !RL 144 REAL, DIMENSION(klon,klev), INTENT(OUT) :: qtc 145 REAL, DIMENSION(klon,klev), INTENT(OUT) :: sigt 146 REAL, INTENT(OUT) :: tau_cld_cv, coefw_cld_cv 147 REAL, DIMENSION(klon), INTENT(OUT) :: epmax_diag ! epmax_cape 148 149 ! 150 ! Local 151 ! ---- 152 REAL, DIMENSION(klon,klev) :: em_p 153 REAL, DIMENSION(klon,klev+1) :: em_ph 154 REAL :: em_sig1feed ! sigma at lower bound of feeding layer 155 REAL :: em_sig2feed ! sigma at upper bound of feeding layer 156 REAL, DIMENSION(klev) :: em_wght ! weight density determining the feeding mixture 157 REAL, DIMENSION(klon,klev+1) :: Vprecipi !jyg 134 158 !on enleve le save 135 159 ! SAVE em_sig1feed,em_sig2feed,em_wght 136 160 137 INTEGER iflag(klon) 138 REAL rflag(klon) 139 REAL pbase(klon), bbase(klon) 140 REAL dtvpdt1(klon, klev), dtvpdq1(klon, klev) 141 REAL dplcldt(klon), dplcldr(klon) 142 REAL qcondc(klon, klev) 143 REAL qtc(klon, klev) 144 REAL sigt(klon, klev) 145 REAL wd(klon) 146 REAL plim1(klon), plim2(klon), asupmax(klon, klev) 147 REAL supmax0(klon), asupmaxmin(klon) 148 149 REAL sigd(klon) 150 REAL zx_t, zdelta, zx_qs, zcor 151 REAL tau_cld_cv, coefw_cld_cv 152 REAL epmax_diag(klon) ! epmax_cape 153 161 REAL, DIMENSION(klon) :: rflag 162 REAL, DIMENSION(klon) :: plim1, plim2 163 REAL, DIMENSION(klon) :: ptop2 164 REAL, DIMENSION(klon,klev) :: asupmax 165 REAL, DIMENSION(klon) :: supmax0, asupmaxmin 166 REAL :: zx_t, zdelta, zx_qs, zcor 167 ! 154 168 ! INTEGER iflag_mix 155 169 ! SAVE iflag_mix 156 INTEGER noff, minorig 157 INTEGER i, k, itra 158 REAL qs(klon, klev), qs_wake(klon, klev) 159 REAL cbmf(klon), plcl(klon), plfc(klon), wbeff(klon) 160 REAL convoccur(klon) 170 INTEGER :: noff, minorig 171 INTEGER :: i,j, k, itra 172 REAL, DIMENSION(klon,klev) :: qs, qs_wake 161 173 !LF SAVE cbmf 162 174 !IM/JYG REAL, SAVE, ALLOCATABLE :: cbmf(:) 163 175 !!!$OMP THREADPRIVATE(cbmf)! 164 REAL cbmflast(klon) 165 INTEGER ifrst 166 SAVE ifrst 167 DATA ifrst/0/ 168 !$OMP THREADPRIVATE(ifrst) 176 REAL, DIMENSION(klon) :: cbmflast 169 177 170 178 … … 259 267 snow(:) = 0 260 268 261 ! IF (ifrst .EQ. 0) THEN262 ! ifrst = 1263 269 IF (first) THEN 264 270 first = .FALSE. … … 293 299 sigd(i) = 0. 294 300 END DO 295 END IF !( ifrst .EQ. 0)301 END IF !(first) 296 302 297 303 ! Initialisation a chaque pas de temps … … 393 399 kbas, ktop, & 394 400 dtime, Ma, upwd, dnwd, dnwdbis, qcondc, wd, cape, & 395 da, phi, mp, phi 2, d1a, dam, sij, clw, elij, & !RomP401 da, phi, mp, phii, d1a, dam, sij, clw, elij, & !RomP 396 402 evap, ep, epmlmMm, eplaMm, & !RomP 397 403 wdtrainA, wdtrainM, & !RomP … … 428 434 asupmaxmin, lalim_conv, & 429 435 !AC!+!RomP+jyg 430 !! da,phi,mp,phi 2,d1a,dam,sij,clw,elij, & ! RomP436 !! da,phi,mp,phii,d1a,dam,sij,clw,elij, & ! RomP 431 437 !! evap,ep,epmlmMm,eplaMm, ! RomP 432 da, phi, mp, phi 2, d1a, dam, sij, wght, & ! RomP+RL438 da, phi, mp, phii, d1a, dam, sij, wght, & ! RomP+RL 433 439 clw, elij, evap, ep, epmlmMm, eplaMm, & ! RomP+RL 434 440 wdtrainA, wdtrainM, qtc, sigt, &
Note: See TracChangeset
for help on using the changeset viewer.