Changeset 3615 for trunk/LMDZ.VENUS/libf


Ignore:
Timestamp:
Feb 10, 2025, 8:42:03 AM (35 hours ago)
Author:
emillour
Message:

Venus PCM: Corrections to enable 1+1=2

  • store correctly the time_of_day in restart.nc to enable proper restart
  • enforce recomputation of CP in the physics at all time steps (otherwise when without thermosphere the value was only computed at first step and kept unchanged afterwards).

EM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r3535 r3615  
    135135c Variables argument:
    136136c
    137       INTEGER nlon
    138       INTEGER nlev
    139       INTEGER nqmax
    140       REAL rjourvrai
    141       REAL gmtime
    142       REAL pdtphys
    143       LOGICAL debut, lafin
    144       REAL paprs(klon,klev+1)
    145       REAL pplay(klon,klev)
    146       REAL pphi(klon,klev)
    147       REAL pphis(klon)
    148       REAL presnivs(klev)
     137      INTEGER,INTENT(IN) :: nlon
     138      INTEGER,INTENT(IN) :: nlev
     139      INTEGER,INTENT(IN) :: nqmax
     140      REAL,INTENT(IN) :: rjourvrai
     141      REAL,INTENT(IN) :: gmtime
     142      REAL,INTENT(IN) :: pdtphys
     143      LOGICAL,INTENT(IN) :: debut, lafin
     144      REAL,INTENT(IN) :: paprs(klon,klev+1)
     145      REAL,INTENT(IN) :: pplay(klon,klev)
     146      REAL,INTENT(IN) :: pphi(klon,klev)
     147      REAL,INTENT(IN) :: pphis(klon)
     148      REAL,INTENT(IN) :: presnivs(klev)
    149149
    150150! ADAPTATION GCM POUR CP(T)
    151151      REAL ppk(klon,klev)
    152152
    153       REAL u(klon,klev)
    154       REAL v(klon,klev)
    155       REAL t(klon,klev)
    156       REAL qx(klon,klev,nqmax)
     153      REAL,INTENT(IN) :: u(klon,klev)
     154      REAL,INTENT(IN) :: v(klon,klev)
     155      REAL,INTENT(IN) :: t(klon,klev)
     156      REAL,INTENT(IN) :: qx(klon,klev,nqmax)
    157157
    158158      REAL d_u_dyn(klon,klev)
    159159      REAL d_t_dyn(klon,klev)
    160160
    161       REAL flxmw(klon,klev)
    162 
    163       REAL d_u(klon,klev)
    164       REAL d_v(klon,klev)
    165       REAL d_t(klon,klev)
    166       REAL d_qx(klon,klev,nqmax)
    167       REAL d_ps(klon)
     161      REAL,INTENT(IN) :: flxmw(klon,klev)
     162
     163      REAL,INTENT(OUT) :: d_u(klon,klev)
     164      REAL,INTENT(OUT) :: d_v(klon,klev)
     165      REAL,INTENT(OUT) :: d_t(klon,klev)
     166      REAL,INTENT(OUT) :: d_qx(klon,klev,nqmax)
     167      REAL,INTENT(OUT) :: d_ps(klon)
    168168
    169169      logical ok_hf
     
    10361036      if(callthermos) then
    10371037         call concentrations2(pplay,t_seri,tr_seri, nqmax)
     1038      else
     1039        ! one still needs to recompute cp and rho which depend on temperature
     1040        ! (rnew, mmean and akknew remain already initialized constants)
     1041        do ig=1,klon
     1042          do j=1,klev
     1043            cpnew(ig,j)=cpdet(t(ig,j))
     1044            rho(ig,j)=pplay(ig,j)/(rnew(ig,j)*t(ig,j))
     1045          enddo
     1046        enddo
    10381047      endif
    10391048
     
    21452154      CALL send_xios_field("Kz",ycoefh)
    21462155      CALL send_xios_field("mmean",mmean)
     2156      CALL send_xios_field("Cp",cpnew)
    21472157      CALL send_xios_field("rho",rho)
    21482158      CALL send_xios_field("BV2",zn2)
Note: See TracChangeset for help on using the changeset viewer.