Ignore:
Timestamp:
Mar 9, 2018, 4:43:48 PM (7 years ago)
Author:
mvals
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/improvedclouds.F

    r1779 r1909  
    1       subroutine improvedclouds(ngrid,nlay,ptimestep,
    2      &             pplay,pt,pdt,
    3      &             pq,pdq,pdqcloud,pdtcloud,
     1      subroutine improvedclouds(ngrid,nlay,microtimestep,
     2     &             pplay,pteff,sum_subpdt,
     3     &             pqeff,sum_subpdq,subpdqcloud,subpdtcloud,
    44     &             nq,tauscaling)
    55! to use  'getin'
     
    4242      INTEGER ngrid,nlay
    4343      integer nq                 ! nombre de traceurs
    44       REAL ptimestep             ! pas de temps physique (s)
     44      REAL microtimestep             ! pas de temps physique (s)
    4545      REAL pplay(ngrid,nlay)     ! pression au milieu des couches (Pa)
    4646           
    47       REAL pt(ngrid,nlay)        ! temperature at the middle of the
     47      REAL pteff(ngrid,nlay)        ! temperature at the middle of the
    4848                                 !   layers (K)
    49       REAL pdt(ngrid,nlay)       ! tendance temperature des autres
     49      REAL sum_subpdt(ngrid,nlay)       ! tendance temperature des autres
    5050                                 !   param.
    51       REAL pq(ngrid,nlay,nq)     ! traceur (kg/kg)
    52       REAL pdq(ngrid,nlay,nq)    ! tendance avant condensation
     51      REAL pqeff(ngrid,nlay,nq)     ! traceur (kg/kg)
     52      REAL sum_subpdq(ngrid,nlay,nq)    ! tendance avant condensation
    5353                                 !   (kg/kg.s-1)
    5454      REAL tauscaling(ngrid)     ! Convertion factor for qdust and Ndust
    5555
    5656c     Outputs:
    57       REAL pdqcloud(ngrid,nlay,nq) ! tendance de la condensation
     57      REAL subpdqcloud(ngrid,nlay,nq) ! tendance de la condensation
    5858                                   !   H2O(kg/kg.s-1)
    59       REAL pdtcloud(ngrid,nlay)    ! tendance temperature due
     59      REAL subpdtcloud(ngrid,nlay)    ! tendance temperature due
    6060                                   !   a la chaleur latente
    6161
     
    216216! 1. Initialisation
    217217!=============================================================
    218       cste = 4*pi*rho_ice*ptimestep
     218      cste = 4*pi*rho_ice*microtimestep
    219219
    220220      res_out(:,:) = 0
     
    222222
    223223c     Initialize the tendencies
    224       pdqcloud(1:ngrid,1:nlay,1:nq)=0
    225       pdtcloud(1:ngrid,1:nlay)=0
     224      subpdqcloud(1:ngrid,1:nlay,1:nq)=0
     225      subpdtcloud(1:ngrid,1:nlay)=0
    226226   
    227227     
    228228      zt(1:ngrid,1:nlay) =
    229      &      pt(1:ngrid,1:nlay) +
    230      &      pdt(1:ngrid,1:nlay) * ptimestep
     229     &      pteff(1:ngrid,1:nlay) +
     230     &      sum_subpdt(1:ngrid,1:nlay) * microtimestep
    231231
    232232      zq(1:ngrid,1:nlay,1:nq) =
    233      &      pq(1:ngrid,1:nlay,1:nq) +
    234      &      pdq(1:ngrid,1:nlay,1:nq) * ptimestep
     233     &      pqeff(1:ngrid,1:nlay,1:nq) +
     234     &      sum_subpdq(1:ngrid,1:nlay,1:nq) * microtimestep
    235235     
    236236     
     
    317317        dM = 0.
    318318        do i = 1, nbin_cld
    319           n_aer(i) = n_aer(i)/( 1. + rate(i)*ptimestep)
    320           m_aer(i) = m_aer(i)/( 1. + rate(i)*ptimestep)
    321           dN       = dN + n_aer(i) * rate(i) * ptimestep
    322           dM       = dM + m_aer(i) * rate(i) * ptimestep
     319          n_aer(i) = n_aer(i)/( 1. + rate(i)*microtimestep)
     320          m_aer(i) = m_aer(i)/( 1. + rate(i)*microtimestep)
     321          dN       = dN + n_aer(i) * rate(i) * microtimestep
     322          dM       = dM + m_aer(i) * rate(i) * microtimestep
    323323        enddo
    324324
     
    386386       lw=(2834.3-0.28*(zt(ig,l)-To)-
    387387     &     0.004*(zt(ig,l)-To)*(zt(ig,l)-To))*1.e+3
    388        pdtcloud(ig,l)= dMice*lw/cpp/ptimestep
     388       subpdtcloud(ig,l)= dMice*lw/cpp/microtimestep
    389389         
    390390         
     
    420420     
    421421      ! Get cloud tendencies
    422         pdqcloud(1:ngrid,1:nlay,igcm_h2o_vap) =
     422        subpdqcloud(1:ngrid,1:nlay,igcm_h2o_vap) =
    423423     &   (zq(1:ngrid,1:nlay,igcm_h2o_vap) -
    424      &    zq0(1:ngrid,1:nlay,igcm_h2o_vap))/ptimestep
    425         pdqcloud(1:ngrid,1:nlay,igcm_h2o_ice) =
     424     &    zq0(1:ngrid,1:nlay,igcm_h2o_vap))/microtimestep
     425        subpdqcloud(1:ngrid,1:nlay,igcm_h2o_ice) =
    426426     &   (zq(1:ngrid,1:nlay,igcm_h2o_ice) -
    427      &    zq0(1:ngrid,1:nlay,igcm_h2o_ice))/ptimestep
    428         pdqcloud(1:ngrid,1:nlay,igcm_ccn_mass) =
     427     &    zq0(1:ngrid,1:nlay,igcm_h2o_ice))/microtimestep
     428        subpdqcloud(1:ngrid,1:nlay,igcm_ccn_mass) =
    429429     &   (zq(1:ngrid,1:nlay,igcm_ccn_mass) -
    430      &    zq0(1:ngrid,1:nlay,igcm_ccn_mass))/ptimestep
    431         pdqcloud(1:ngrid,1:nlay,igcm_ccn_number) =
     430     &    zq0(1:ngrid,1:nlay,igcm_ccn_mass))/microtimestep
     431        subpdqcloud(1:ngrid,1:nlay,igcm_ccn_number) =
    432432     &   (zq(1:ngrid,1:nlay,igcm_ccn_number) -
    433      &    zq0(1:ngrid,1:nlay,igcm_ccn_number))/ptimestep
     433     &    zq0(1:ngrid,1:nlay,igcm_ccn_number))/microtimestep
    434434     
    435435      if (scavenging) then
    436436     
    437         pdqcloud(1:ngrid,1:nlay,igcm_dust_mass) =
     437        subpdqcloud(1:ngrid,1:nlay,igcm_dust_mass) =
    438438     &   (zq(1:ngrid,1:nlay,igcm_dust_mass) -
    439      &    zq0(1:ngrid,1:nlay,igcm_dust_mass))/ptimestep
    440         pdqcloud(1:ngrid,1:nlay,igcm_dust_number) =
     439     &    zq0(1:ngrid,1:nlay,igcm_dust_mass))/microtimestep
     440        subpdqcloud(1:ngrid,1:nlay,igcm_dust_number) =
    441441     &   (zq(1:ngrid,1:nlay,igcm_dust_number) -
    442      &    zq0(1:ngrid,1:nlay,igcm_dust_number))/ptimestep
     442     &    zq0(1:ngrid,1:nlay,igcm_dust_number))/microtimestep
    443443         
    444444      endif
Note: See TracChangeset for help on using the changeset viewer.