Changeset 2427


Ignore:
Timestamp:
Nov 3, 2020, 4:45:09 PM (4 years ago)
Author:
emillour
Message:

Generic GCM:
Bug fix on call arguments sent from physiq to vdifc (probably not as bad as
it sounds, as turbdiff is usually used instead of vdifc).
In the process turned vdifc into a module, as well as turbdiff,
for better control, and removed unused arguments.
EM+YJ

Location:
trunk/LMDZ.GENERIC
Files:
2 edited
2 moved

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r2422 r2427  
    15961596File format have one and only one header line.
    15971597With this option you also need to specify in "callphys.def" "tstellar==..."
     1598
     1599== 03/11/2020 == EM + YJ
     1600Bug fix on call arguments sent from physiq to vdifc (probably not as bad as
     1601it sounds, as turbdiff is usually used instead of vdifc).
     1602In the process turned vdifc into a module, as well as turbdiff,
     1603for better control, and removed unused arguments.
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r2300 r2427  
    5252      use phys_state_var_mod
    5353      use callcorrk_mod, only: callcorrk
     54      use vdifc_mod, only: vdifc
     55      use turbdiff_mod, only: turbdiff
    5456      use turb_mod, only : q2,sensibFlux,turb_resolved
    5557#ifndef MESOSCALE
     
    10381040         
    10391041            call turbdiff(ngrid,nlayer,nq,rnat,                  &
    1040                           ptimestep,capcal,lwrite,               &
     1042                          ptimestep,capcal,                      &
    10411043                          pplay,pplev,zzlay,zzlev,z0,            &
    10421044                          pu,pv,pt,zpopsk,pq,tsurf,emis,qsurf,   &
     
    10441046                          zdudif,zdvdif,zdtdif,zdtsdif,          &
    10451047                          sensibFlux,q2,zdqdif,zdqevap,zdqsdif,  &
    1046                           taux,tauy,lastcall)
     1048                          taux,tauy)
    10471049
    10481050         else
     
    10561058                       zdh,pdq,zflubid,                       &
    10571059                       zdudif,zdvdif,zdhdif,zdtsdif,          &
    1058                        sensibFlux,q2,zdqdif,zdqsdif,          &
    1059                        taux,tauy,lastcall)
     1060                       sensibFlux,q2,zdqdif,zdqsdif)
    10601061
    10611062            zdtdif(1:ngrid,1:nlayer)=zdhdif(1:ngrid,1:nlayer)*zpopsk(1:ngrid,1:nlayer) ! for diagnostic only
  • trunk/LMDZ.GENERIC/libf/phystd/turbdiff_mod.F90

    r2425 r2427  
     1module turbdiff_mod
     2     
     3implicit none
     4     
     5contains
     6     
    17      subroutine turbdiff(ngrid,nlay,nq,rnat,          &
    2           ptimestep,pcapcal,lecrit,                    &   
     8          ptimestep,pcapcal,                    &   
    39          pplay,pplev,pzlay,pzlev,pz0,                 &
    410          pu,pv,pt,ppopsk,pq,ptsrf,pemis,pqsurf,       &
    511          pdtfi,pdqfi,pfluxsrf,            &
    612          Pdudif,pdvdif,pdtdif,pdtsrf,sensibFlux,pq2,  &
    7           pdqdif,pdqevap,pdqsdif,flux_u,flux_v,lastcall)
     13          pdqdif,pdqevap,pdqsdif,flux_u,flux_v)
    814
    915      use watercommon_h, only : RLVTT, T_h2O_ice_liq, RCPD, mx_eau_sol,Psat_water, Lcpdqsat_water
     
    6773      REAL,INTENT(OUT) :: flux_u(ngrid),flux_v(ngrid)
    6874      REAL,INTENT(IN) :: rnat(ngrid)     
    69       LOGICAL,INTENT(IN) :: lastcall ! not used
    70 
    71 !     Arguments added for condensation
    72       logical,intent(in) :: lecrit ! not used.
     75
    7376      REAL,INTENT(IN) :: pz0
    7477
     
    734737      endif
    735738
    736 !      if(lastcall)then
    737 !        if(ngrid.eq.1)then
    738 !           print*,'Saving k.out...'
    739 !           OPEN(12,file='k.out',form='formatted')
    740 !           DO ilay=1,nlay
    741 !              write(12,*) zkh(1,ilay), pplay(1,ilay)
    742 !           ENDDO
    743 !           CLOSE(12)
    744 !         endif
    745 !      endif
    746 
    747       end
     739      end subroutine turbdiff
     740     
     741end module turbdiff_mod
  • trunk/LMDZ.GENERIC/libf/phystd/vdifc_mod.F

    r2425 r2427  
     1      module vdifc_mod
     2     
     3      implicit none
     4     
     5      contains
     6     
    17      subroutine vdifc(ngrid,nlay,nq,rnat,ppopsk,         
    28     &     ptimestep,pcapcal,lecrit,                       
     
    511     &     pdhfi,pdqfi,pfluxsrf,
    612     &     pdudif,pdvdif,pdhdif,pdtsrf,sensibFlux,pq2,
    7      &     pdqdif,pdqsdif,lastcall)
     13     &     pdqdif,pdqsdif)
    814
    915      use watercommon_h, only : RLVTT, T_h2O_ice_liq, RCPD, mx_eau_sol
    1016     &    ,Psat_water, Lcpdqsat_water
    1117      use radcommon_h, only : sigma
    12       USE surfdat_h
    13       USE tracer_h
     18      use surfdat_h, only: dryness
     19      use tracer_h, only: igcm_h2o_vap, igcm_h2o_ice
    1420      use comcstfi_mod, only: g, r, cpp, rcp
    1521      use callkeys_mod, only: water,tracer,nosurf
     
    4349!     arguments
    4450!     ---------
    45       INTEGER ngrid,nlay
    46       REAL ptimestep
    47       REAL pplay(ngrid,nlay),pplev(ngrid,nlay+1)
    48       REAL pzlay(ngrid,nlay),pzlev(ngrid,nlay+1)
    49       REAL pu(ngrid,nlay),pv(ngrid,nlay),ph(ngrid,nlay)
    50       REAL ptsrf(ngrid),pemis(ngrid)
    51       REAL pdhfi(ngrid,nlay)
    52       REAL pfluxsrf(ngrid)
    53       REAL pdudif(ngrid,nlay),pdvdif(ngrid,nlay),pdhdif(ngrid,nlay)
    54       REAL pdtsrf(ngrid),sensibFlux(ngrid),pcapcal(ngrid)
    55       REAL pq2(ngrid,nlay+1)
     51      INTEGER,INTENT(IN) :: ngrid,nlay
     52      REAL,INTENT(IN) :: ptimestep
     53      REAL,INTENT(IN) :: pplay(ngrid,nlay),pplev(ngrid,nlay+1)
     54      REAL,INTENT(IN) :: pzlay(ngrid,nlay),pzlev(ngrid,nlay+1)
     55      REAL,INTENT(IN) :: pu(ngrid,nlay),pv(ngrid,nlay),ph(ngrid,nlay)
     56      REAL,INTENT(IN) :: ptsrf(ngrid),pemis(ngrid)
     57      REAL,INTENT(IN) :: pdhfi(ngrid,nlay)
     58      REAL,INTENT(IN) :: pfluxsrf(ngrid)
     59      REAL,INTENT(OUT) :: pdudif(ngrid,nlay),pdvdif(ngrid,nlay)
     60      REAL,INTENT(OUT) :: pdhdif(ngrid,nlay)
     61      REAL,INTENT(OUT) :: pdtsrf(ngrid),sensibFlux(ngrid)
     62      REAL,INTENT(IN) :: pcapcal(ngrid)
     63      REAL,INTENT(INOUT) :: pq2(ngrid,nlay+1)
    5664     
    57       real rnat(ngrid)     
     65      real,intent(in) :: rnat(ngrid)     
    5866
    5967!     Arguments added for condensation
    60       REAL ppopsk(ngrid,nlay)
    61       logical lecrit
    62       REAL pz0
     68      REAL,INTENT(IN) :: ppopsk(ngrid,nlay)
     69      logical,intent(in) :: lecrit
     70      REAL,INTENT(IN) :: pz0
    6371
    6472!     Tracers
    6573!     --------
    66       integer nq
    67       real pqsurf(ngrid,nq)
    68       real pq(ngrid,nlay,nq), pdqfi(ngrid,nlay,nq)
    69       real pdqdif(ngrid,nlay,nq)
    70       real pdqsdif(ngrid,nq)
     74      integer,intent(in) :: nq
     75      real,intent(in) :: pqsurf(ngrid,nq)
     76      real,intent(in) :: pq(ngrid,nlay,nq), pdqfi(ngrid,nlay,nq)
     77      real,intent(out) :: pdqdif(ngrid,nlay,nq)
     78      real,intent(out) :: pdqsdif(ngrid,nq)
    7179     
    7280!     local
     
    96104!$OMP THREADPRIVATE(firstcall)
    97105     
    98       LOGICAL lastcall
    99 
    100106!     variables added for CO2 condensation
    101107!     ------------------------------------
     
    701707      endif
    702708
    703 !      if(lastcall)then
    704 !        if(ngrid.eq.1)then
    705 !           print*,'Saving k.out...'
    706 !           OPEN(12,file='k.out',form='formatted')
    707 !           DO ilay=1,nlay
    708 !              write(12,*) zkh(1,ilay), pplay(1,ilay)
    709 !           ENDDO
    710 !           CLOSE(12)
    711 !         endif
    712 !      endif
    713 
    714 
    715       return
    716       end
     709
     710      end subroutine vdifc
     711
     712      end module vdifc_mod
Note: See TracChangeset for help on using the changeset viewer.