Changeset 2177 for trunk/LMDZ.GENERIC/libf/phystd/thermcell_env.F90
- Timestamp:
- Nov 12, 2019, 11:55:58 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.GENERIC/libf/phystd/thermcell_env.F90
r2143 r2177 38 38 ! ------- 39 39 40 INTEGER ngrid, nlay, nq 40 INTEGER, INTENT(in) :: ngrid 41 INTEGER, INTENT(in) :: nlay 42 INTEGER, INTENT(in) :: nq 41 43 42 REAL pq(ngrid,nlay,nq)! Large scale water43 REAL pt(ngrid,nlay)! Large scale temperature44 REAL pu(ngrid,nlay)! Large scale zonal wind45 REAL pv(ngrid,nlay)! Large scale meridional wind46 REAL pplay(ngrid,nlay)! Layers pressure47 REAL pplev(ngrid,nlay+1)! Levels pressure48 REAL zpopsk(ngrid,nlay)! Exner function44 REAL, INTENT(in) :: pq(ngrid,nlay,nq) ! Large scale water 45 REAL, INTENT(in) :: pt(ngrid,nlay) ! Large scale temperature 46 REAL, INTENT(in) :: pu(ngrid,nlay) ! Large scale zonal wind 47 REAL, INTENT(in) :: pv(ngrid,nlay) ! Large scale meridional wind 48 REAL, INTENT(in) :: pplay(ngrid,nlay) ! Layers pressure 49 REAL, INTENT(in) :: pplev(ngrid,nlay+1) ! Levels pressure 50 REAL, INTENT(in) :: zpopsk(ngrid,nlay) ! Exner function 49 51 50 52 ! Outputs: 51 53 ! -------- 52 54 53 REAL zqt(ngrid,nlay) ! qtenvironment54 REAL zql(ngrid,nlay) ! qlenvironment55 REAL zt(ngrid,nlay) ! Tenvironment56 REAL ztv(ngrid,nlay) ! TRPVenvironment57 REAL zhl(ngrid,nlay) ! TPenvironment58 REAL zu(ngrid,nlay) ! uenvironment59 REAL zv(ngrid,nlay) ! venvironment60 REAL zqs(ngrid,nlay)! qsat environment55 REAL, INTENT(out) :: zt(ngrid,nlay) ! T environment 56 REAL, INTENT(out) :: ztv(ngrid,nlay) ! TRPV environment 57 REAL, INTENT(out) :: zhl(ngrid,nlay) ! TP environment 58 REAL, INTENT(out) :: zu(ngrid,nlay) ! u environment 59 REAL, INTENT(out) :: zv(ngrid,nlay) ! v environment 60 REAL, INTENT(out) :: zqt(ngrid,nlay) ! qt environment 61 REAL, INTENT(out) :: zql(ngrid,nlay) ! ql environment 62 REAL, INTENT(out) :: zqs(ngrid,nlay) ! qsat environment 61 63 62 64 ! Local: 63 65 ! ------ 64 66 65 INTEGER ig, l67 INTEGER ig, k 66 68 67 REAL psat ! Dummy argument for Psat_water()69 REAL psat ! Dummy argument for Psat_water() 68 70 69 71 !=============================================================================== … … 85 87 IF (water) THEN 86 88 87 DO l=1,nlay89 DO k=1,nlay 88 90 DO ig=1,ngrid 89 CALL Psat_water(pt(ig, l), pplev(ig,l), psat, zqs(ig,l))91 CALL Psat_water(pt(ig,k), pplev(ig,k), psat, zqs(ig,k)) 90 92 ENDDO 91 93 ENDDO 92 94 93 DO l=1,nlay95 DO k=1,nlay 94 96 DO ig=1,ngrid 95 zql(ig, l) = max(0.,pq(ig,l,igcm_h2o_vap) - zqs(ig,l))96 zt(ig, l) = pt(ig,l) + RLvCp * zql(ig,l)97 ztv(ig, l) = zt(ig,l) / zpopsk(ig,l) &98 & * (1. + RETV * (zqt(ig, l)-zql(ig,l)) - zql(ig,l))97 zql(ig,k) = max(0.,pq(ig,k,igcm_h2o_vap) - zqs(ig,k)) 98 zt(ig,k) = pt(ig,k) + RLvCp * zql(ig,k) 99 ztv(ig,k) = zt(ig,k) / zpopsk(ig,k) & 100 & * (1. + RETV * (zqt(ig,k)-zql(ig,k)) - zql(ig,k)) 99 101 ENDDO 100 102 ENDDO
Note: See TracChangeset
for help on using the changeset viewer.