Changeset 3640


Ignore:
Timestamp:
Feb 23, 2025, 10:18:16 PM (4 months ago)
Author:
tbertrand
Message:

Pluto: fix to take into account change in soil thermal inertia with time + fix for albedomap in newstart
TB

Location:
trunk/LMDZ.PLUTO/libf
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO/libf/dynphy_lonlat/phypluto/newstart.F

    r3631 r3640  
    40194019      call physdem1("restartfi.nc",nsoilmx,ngridmx,llm,nqtot,
    40204020     &                dtphys,real(day_ini),
    4021      &                tsurf,tsoil,ithfi,emis,q2,qsurf)
     4021     &                tsurf,tsoil,ithfi,emis,albfi,q2,qsurf)
    40224022!     &                cloudfrac,totalfrac,hice,
    40234023!     &                rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
  • trunk/LMDZ.PLUTO/libf/phypluto/phyredem.F90

    r3539 r3640  
    115115 
    116116  ! Write surface albedo
    117   call put_field("albedodat","Albedo of bare ground",alb)
     117  !call put_field("albedodat","Albedo of bare ground",alb)
    118118 
    119119  ! Subgrid topogaphy variables
     
    131131subroutine physdem1(filename,nsoil,ngrid,nlay,nq, &
    132132                    phystep,time,tsurf,tsoil,inertiesoil, &
    133                     emis,q2,qsurf)
     133                    emis,alb,q2,qsurf)
    134134  ! write time-dependent variable to restart file
    135135  use iostart, only : open_restartphy, close_restartphy, &
     
    149149  real,intent(in) :: tsoil(ngrid,nsoil)
    150150  real,intent(in) :: emis(ngrid)
     151  real,intent(in) :: alb(ngrid)
    151152  real,intent(in) :: inertiesoil(ngrid,nsoil)
    152153  real,intent(in) :: q2(ngrid,nlay+1)
     
    173174  ! Emissivity of the surface
    174175  call put_field("emis","Surface emissivity",emis)
     176
     177  ! Albedo of the surface
     178  call put_field("albedodat","Albedo of bare ground",alb)
    175179 
    176180  ! Planetary Boundary Layer
  • trunk/LMDZ.PLUTO/libf/phypluto/physiq_mod.F90

    r3632 r3640  
    20982098
    20992099               call physdem1("restartfi.nc",nsoilmx,ngrid,nlayer,nq, &
    2100                            ptimestep,ztime_fin,                    &
    2101                            tsurf,tsoil,therm_inertia,emis,q2,qsurf)
     2100                           ptimestep,ztime_fin,tsurf,                &
     2101                           tsoil,therm_inertia,emis,albedo,q2,qsurf)
    21022102            endif
    21032103
  • trunk/LMDZ.PLUTO/libf/phypluto/soil.F90

    r3483 r3640  
    99      use planete_mod, only: year_day
    1010      use geometry_mod, only: longitude, latitude ! in radians
     11      use callkeys_mod, only: changeti
    1112
    1213      implicit none
     
    5556      !       and not changed by soil.F
    5657
    57       ALLOCATE(mthermdiff(ngrid,0:nsoil-1)) ! mid-layer thermal diffusivity
    58       ALLOCATE(thermdiff(ngrid,nsoil-1))    ! inter-layer thermal diffusivity
    59       ALLOCATE(coefq(0:nsoil-1))              ! q_{k+1/2} coefficients
    60       ALLOCATE(coefd(ngrid,nsoil-1))        ! d_k coefficients
    61       ALLOCATE(alph(ngrid,nsoil-1))         ! alpha_k coefficients
    62       ALLOCATE(beta(ngrid,nsoil-1))         ! beta_k coefficients
     58        ALLOCATE(mthermdiff(ngrid,0:nsoil-1)) ! mid-layer thermal diffusivity
     59        ALLOCATE(thermdiff(ngrid,nsoil-1))    ! inter-layer thermal diffusivity
     60        ALLOCATE(coefq(0:nsoil-1))              ! q_{k+1/2} coefficients
     61        ALLOCATE(coefd(ngrid,nsoil-1))        ! d_k coefficients
     62        ALLOCATE(alph(ngrid,nsoil-1))         ! alpha_k coefficients
     63        ALLOCATE(beta(ngrid,nsoil-1))         ! beta_k coefficients
    6364
     65        ! 0.05 Build coefficients mu, q_{k+1/2}, d_k, alpha_k and capcal
     66        ! mu
     67        mu=mlayer(0)/(mlayer(1)-mlayer(0))
     68
     69        ! q_{1/2}
     70        coefq(0)=volcapa*layer(1)/timestep
     71        ! q_{k+1/2}
     72        do ik=1,nsoil-1
     73          coefq(ik)=volcapa*(layer(ik+1)-layer(ik)) &
     74                      /timestep
     75        enddo
     76      endif
     77
     78      if (firstcall.or.changeti) then
    6479! 0.1 Build mthermdiff(:), the mid-layer thermal diffusivities
    6580      do ig=1,ngrid
     
    8095      enddo
    8196
    82 ! 0.3 Build coefficients mu, q_{k+1/2}, d_k, alpha_k and capcal
    83       ! mu
    84       mu=mlayer(0)/(mlayer(1)-mlayer(0))
    85 
    86       ! q_{1/2}
    87       coefq(0)=volcapa*layer(1)/timestep
    88         ! q_{k+1/2}
    89         do ik=1,nsoil-1
    90           coefq(ik)=volcapa*(layer(ik+1)-layer(ik)) &
    91                       /timestep
    92         enddo
    93 
     97! 0.3 Build coefficients d_k, alpha_k and capcal
    9498      do ig=1,ngrid
    9599        ! d_k
     
    118122      enddo ! of do ig=1,ngrid
    119123
    120       else ! of if (firstcall)
     124      endif ! of if (firstcall)
    121125
     126      if (.not.firstcall) then
    122127
    123128!  1. Compute soil temperatures
Note: See TracChangeset for help on using the changeset viewer.