Changeset 1312 for trunk/LMDZ.GENERIC/libf
- Timestamp:
- Jul 11, 2014, 11:48:09 AM (11 years ago)
- Location:
- trunk/LMDZ.GENERIC/libf
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/libf/dyn3d/calfis.F
r1216 r1312 43 43 c pmasse masse d'air dans chaque maille 44 44 c pts surface temperature (K) 45 c pw flux vertical (kg m-2)45 c pw flux vertical (kg/s) 46 46 c 47 47 c Output : … … 308 308 c On interpole "lineairement" la temperature entre les couches(FF,10/95) 309 309 310 DO ig=1,ngridmx311 zvervel(ig,1)=0.312 END DO313 DO l=2,llm314 zvervel(1,l)=(pw(1,1,l)/apoln)315 & * r *0.5*(ztfi(1,l)+ztfi(1,l-1)) /zplev(1,l)316 ig0=2317 DO j=2,jjm318 DO i = 1, iim319 zvervel(ig0,l) = pw(i,j,l) * unsaire(i,j)320 & * r *0.5*(ztfi(ig0,l)+ztfi(ig0,l-1)) /zplev(ig0,l)321 ig0 = ig0 + 1322 ENDDO323 ENDDO324 zvervel(ig0,l)=(pw(1,jjp1,l)/apols)325 & * r *0.5*(ztfi(ig0,l)+ztfi(ig0,l-1)) /zplev(ig0,l)326 ENDDO310 ! DO ig=1,ngridmx 311 ! zvervel(ig,1)=0. 312 ! END DO 313 ! DO l=2,llm 314 ! zvervel(1,l)=(pw(1,1,l)/apoln) 315 ! & * r *0.5*(ztfi(1,l)+ztfi(1,l-1)) /zplev(1,l) 316 ! ig0=2 317 ! DO j=2,jjm 318 ! DO i = 1, iim 319 ! zvervel(ig0,l) = pw(i,j,l) * unsaire(i,j) 320 ! & * r *0.5*(ztfi(ig0,l)+ztfi(ig0,l-1)) /zplev(ig0,l) 321 ! ig0 = ig0 + 1 322 ! ENDDO 323 ! ENDDO 324 ! zvervel(ig0,l)=(pw(1,jjp1,l)/apols) 325 ! & * r *0.5*(ztfi(ig0,l)+ztfi(ig0,l-1)) /zplev(ig0,l) 326 ! ENDDO 327 327 328 328 c ......... Reindexation : calcul de zvervel au MILIEU des couches 329 DO l=1,llm-1330 DO ig=1,ngridmx331 zvervel(ig,l) = 0.5*(zvervel(ig,l)+zvervel(ig,l+1))332 END DO333 END DO329 ! DO l=1,llm-1 330 ! DO ig=1,ngridmx 331 ! zvervel(ig,l) = 0.5*(zvervel(ig,l)+zvervel(ig,l+1)) 332 ! END DO 333 ! END DO 334 334 c (dans la couche llm, on garde la valeur à la limite inférieure llm) 335 335 … … 430 430 , zplev,zplay,zphi, 431 431 , zufi, zvfi,ztfi, zqfi, 432 , zvervel, 432 ! , zvervel, 433 , pw, 433 434 C - sorties 434 435 s zdufi, zdvfi, zdtfi, zdqfi,zdpsrf,tracer) -
trunk/LMDZ.GENERIC/libf/phystd/physiq.F90
r1309 r1312 5 5 pplev,pplay,pphi, & 6 6 pu,pv,pt,pq, & 7 pw,&7 flxw, & 8 8 pdu,pdv,pdt,pdq,pdpsrf,tracerdyn) 9 9 … … 98 98 ! ptdyn(ngrid,nlayer) / corresponding variables 99 99 ! pqdyn(ngrid,nlayer,nq) / 100 ! pw(ngrid,?) vertical velocity100 ! flxw(ngrid,nlayer) vertical mass flux (kg/s) at layer lower boundary 101 101 ! 102 102 ! output … … 161 161 real,intent(in) :: pt(ngrid,nlayer) ! temperature (K) 162 162 real,intent(in) :: pq(ngrid,nlayer,nq) ! tracers (.../kg_of_air) 163 real,intent(in) :: pw(ngrid,nlayer) ! vertical velocity (m/s)164 163 real,intent(in) :: flxw(ngrid,nlayer) ! vertical mass flux (ks/s) 164 ! at lower boundary of layer 165 165 166 166 … … 210 210 real aerosol(ngrid,nlayer,naerkind) 211 211 real zh(ngrid,nlayer) ! potential temperature (K) 212 real pw(ngrid,nlayer) ! vertical velocity (m/s) (>0 when downwards) 212 213 213 214 character*80 fichier … … 803 804 enddo 804 805 806 ! Compute vertical velocity (m/s) from vertical mass flux 807 ! w = F / (rho*area) and rho = r*T/P 808 ! but first linearly interpolate mass flux to mid-layers 809 do l=1,nlayer-1 810 pw(1:ngrid,l)=0.5*(flxw(1:ngrid,l)+flxw(1:ngrid,l+1)) 811 enddo 812 pw(1:ngrid,nlayer)=0.5*flxw(1:ngrid,nlayer) ! since flxw(nlayer+1)=0 813 do l=1,nlayer 814 pw(1:ngrid,l)=(pw(1:ngrid,l)*pplay(1:ngrid,l)) / & 815 (r*pt(1:ngrid,l)*area(1:ngrid)) 816 enddo 805 817 806 818 !-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.