Changeset 4133 for LMDZ6/trunk/libf/phylmd/thermcell_flux2.F90
- Timestamp:
- Apr 20, 2022, 11:44:24 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/thermcell_flux2.F90
r4089 r4133 2 2 ! $Id$ 3 3 ! 4 SUBROUTINE thermcell_flux2(ngrid, klev,ptimestep,masse, &4 SUBROUTINE thermcell_flux2(ngrid,nlay,ptimestep,masse, & 5 5 & lalim,lmax,alim_star, & 6 6 & entr_star,detr_star,f,rhobarz,zlev,zw2,fm,entr, & … … 16 16 IMPLICIT NONE 17 17 18 ! arguments 19 INTEGER, intent(in) :: ngrid,nlay 20 REAL, intent(in) :: ptimestep 21 REAL, intent(in), dimension(ngrid,nlay) :: masse 22 INTEGER, intent(in), dimension(ngrid) :: lalim,lmax 23 REAL, intent(in), dimension(ngrid,nlay) :: alim_star,entr_star,detr_star 24 REAL, intent(in), dimension(ngrid) :: f 25 REAL, intent(in), dimension(ngrid,nlay) :: rhobarz 26 REAL, intent(in), dimension(ngrid,nlay+1) :: zw2,zlev 27 ! FH : laisser ca le temps de verifier qu'on a bien fait de commenter les 28 ! lignes faisant apparaitre zqla, zmax ... 29 ! REAL, intent(in), dimension(ngrid) :: zmax(ngrid) 30 ! enlever aussi zqla 31 REAL, intent(in), dimension(ngrid,nlay) :: zqla ! not used 32 integer, intent(in) :: lev_out, lunout1 33 34 REAL,intent(out), dimension(ngrid,nlay) :: entr,detr 35 REAL,intent(out), dimension(ngrid,nlay+1) :: fm 36 37 ! local 18 38 INTEGER ig,l 19 INTEGER ngrid,klev 20 21 REAL alim_star(ngrid,klev),entr_star(ngrid,klev) 22 REAL detr_star(ngrid,klev) 23 REAL zw2(ngrid,klev+1) 24 REAL zlev(ngrid,klev+1) 25 REAL masse(ngrid,klev) 26 REAL ptimestep 27 REAL rhobarz(ngrid,klev) 28 REAL f(ngrid) 29 INTEGER lmax(ngrid) 30 INTEGER lalim(ngrid) 31 REAL zqla(ngrid,klev) 32 REAL zmax(ngrid) 33 39 integer igout,lout 40 REAL zfm 34 41 integer ncorecfm1,ncorecfm2,ncorecfm3,ncorecalpha 35 42 integer ncorecfm4,ncorecfm5,ncorecfm6,ncorecfm7,ncorecfm8 36 43 37 38 REAL entr(ngrid,klev),detr(ngrid,klev)39 REAL fm(ngrid,klev+1)40 REAL zfm41 42 integer igout,lout43 integer lev_out44 integer lunout145 44 46 45 REAL f_old,ddd0,eee0,ddd,eee,zzz … … 90 89 91 90 if (check_debug) then 92 do l=1, klev91 do l=1,nlay 93 92 do ig=1,ngrid 94 93 if (l.le.lmax(ig)) then … … 118 117 !------------------------------------------------------------------------- 119 118 120 do l=1, klev119 do l=1,nlay 121 120 entr(:,l)=f(:)*(entr_star(:,l)+alim_star(:,l)) 122 121 detr(:,l)=f(:)*detr_star(:,l) … … 135 134 136 135 fm(:,1)=0. 137 do l=1, klev136 do l=1,nlay 138 137 do ig=1,ngrid 139 138 if (l.lt.lmax(ig)) then … … 154 153 ! autres corrections. 155 154 156 do l=1, klev155 do l=1,nlay 157 156 do ig=1,ngrid 158 157 if (detr(ig,l).gt.fm(ig,l)) then … … 164 163 165 164 ! if (prt_level.ge.10) & 166 ! & call printflux(ngrid, klev,lunout1,igout,f,lmax,lalim, &165 ! & call printflux(ngrid,nlay,lunout1,igout,f,lmax,lalim, & 167 166 ! & ptimestep,masse,entr,detr,fm,'2 ') 168 167 … … 178 177 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 179 178 180 do l=1, klev179 do l=1,nlay 181 180 182 181 do ig=1,ngrid … … 196 195 !------------------------------------------------------------------------- 197 196 198 ! do l=1, klev197 ! do l=1,nlay 199 198 do ig=1,ngrid 200 199 if (fm(ig,l+1).lt.0.) then … … 215 214 !------------------------------------------------------------------------- 216 215 if (iflag_thermals_optflux==0) then 217 ! do l=1, klev216 ! do l=1,nlay 218 217 do ig=1,ngrid 219 218 if (l.ge.lalim(ig).and.l.le.lmax(ig) & … … 241 240 !------------------------------------------------------------------------- 242 241 if (iflag_thermals_optflux==0) then 243 ! do l=1, klev242 ! do l=1,nlay 244 243 do ig=1,ngrid 245 244 if ((fm(ig,l+1).gt.fm(ig,l)).and.(l.gt.lalim(ig))) then … … 264 263 if(1.eq.1) then 265 264 266 ! do l=1, klev265 ! do l=1,nlay 267 266 268 267 … … 337 336 !------------------------------------------------------------------------- 338 337 339 ! do l=1, klev338 ! do l=1,nlay 340 339 do ig=1,ngrid 341 340 if (fm(ig,l+1).lt.0.) then … … 386 385 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 387 386 388 ! do l=1, klev387 ! do l=1,nlay 389 388 do ig=1,ngrid 390 389 if (zw2(ig,l+1).gt.1.e-10) then … … 393 392 f_old=fm(ig,l+1) 394 393 fm(ig,l+1)=zfm 395 ! zw2(ig,l+1)=0.396 ! zqla(ig,l+1)=0.397 394 detr(ig,l)=detr(ig,l)+f_old-fm(ig,l+1) 398 395 ! lmax(ig)=l+1 … … 415 412 416 413 ! if (prt_level.ge.10) & 417 ! & call printflux(ngrid, klev,lunout1,igout,f,lmax,lalim, &414 ! & call printflux(ngrid,nlay,lunout1,igout,f,lmax,lalim, & 418 415 ! & ptimestep,masse,entr,detr,fm,'8 ') 419 416 … … 426 423 if (1.eq.1) then 427 424 labort_physic=.false. 428 do l=1, klev-1425 do l=1,nlay-1 429 426 do ig=1,ngrid 430 427 eee0=entr(ig,l) … … 507 504 508 505 ! if (prt_level.ge.10) & 509 ! & call printflux(ngrid, klev,lunout1,igout,f,lmax,lalim, &506 ! & call printflux(ngrid,nlay,lunout1,igout,f,lmax,lalim, & 510 507 ! & ptimestep,masse,entr,detr,fm,'fin') 511 508 512 509 513 return510 RETURN 514 511 end
Note: See TracChangeset
for help on using the changeset viewer.