Ignore:
Timestamp:
Jul 17, 2024, 4:30:09 PM (5 months ago)
Author:
bhatnags
Message:

GENERIC-PCM: Fix/clarification of the usage of tice (sea ice surface temperature) vs. tsea_ice (temperature of the top layer (ice or snow)).

SB

Location:
trunk/LMDZ.GENERIC/libf/phystd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/libf/phystd/ocean_slab_mod.F90

    r3364 r3397  
    459459!    CALL calcul_flux_wind(knon, dtime, &
    460460!         u0, v0, u1, v1, gustiness, cdragm, &
    461 !         AcoefU, AcoefV, BcoefU, BcoefV, &
    462 !         p1lay, temp_air, &
    463461!         flux_u1, flux_v1)
    464462
     
    10551053    WHERE ((zmasq==0).and. &
    10561054           ((fsic.LT.ice_frac_min).OR.(seaice.LT.h_ice_min)))
     1055!!    WHERE ((fsic.LT.ice_frac_min).OR.(seaice.LT.h_ice_min))
    10571056        tslab(:,1)=tslab(:,1)-fsic*seaice*ice_lat*cyang
    10581057        tice=t_melt
     
    11061105
    11071106! Set the output variables
     1107    tslab_loc(:,:) = 0.
     1108    tice_loc(:)=0.
     1109    dt_hdiff_loc(:,:)=0.
     1110    dt_ekman_loc(:,:)=0.
     1111    dt_gm_loc(:,:)=0.
    11081112    tslab_loc(:,:) = tslab(:,:)
    11091113    tice_loc(:)=tice(:)
    11101114    seaice_loc(:) = seaice(:)
    11111115    flux_g_loc(:) = slab_bilg(:)
    1112     dt_hdiff_loc(:,:)=0.
    1113     dt_ekman_loc(:,:)=0.
    1114     dt_gm_loc(:,:)=0.
    11151116
    11161117!!      dt_hdiff_loc(:,i) = dt_hdiff(:,i)*slabh(i)*1000.*4228. !Convert en W/m2
  • trunk/LMDZ.GENERIC/libf/phystd/phyetat0_mod.F90

    r3335 r3397  
    99                     day_ini,time,tsurf,tsoil,emis,albedo, &
    1010                     q2,qsurf,cloudfrac,totcloudfrac,hice, &
    11                      rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
     11                     rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice)
    1212
    1313! to use  'getin_p'
     
    5858  real,intent(out) :: tsea_ice(ngrid),sea_ice(ngrid)
    5959  real,intent(out) :: rnat(ngrid)
    60 !  real,intent(out) :: tice(ngrid)
     60  real,intent(out) :: tice(ngrid)
    6161
    6262!======================================================================
     
    363363  tsea_ice(1:ngrid)=273.15-1.8
    364364endif ! of if (startphy_file)
    365 write(*,*) "phyetat0: Oceanic ice temperature <tsea_ice> range:", &
     365write(*,*) "phyetat0: Oceanic ice/snow temperature <tsea_ice> range:", &
    366366             minval(tsea_ice), maxval(tsea_ice)
    367367
    368 !if (startphy_file) then
     368if (startphy_file) then
    369369  ! Oceanic ice temperature
    370 !  call get_field("tice",tice,found,indextime)
    371 !  if (.not.found) then
    372 !    write(*,*) "phyetat0: Failed loading <tice>"
    373 !    tice(1:ngrid)=273.15-1.8
    374 !  endif
    375 !else
    376 !  tice(1:ngrid)=273.15-1.8
    377 !endif ! of if (startphy_file)
    378 !write(*,*) "phyetat0: Oceanic ice temperature <tice> range:", &
    379 !             minval(tice), maxval(tice)
     370  call get_field("tice",tice,found,indextime)
     371  if (.not.found) then
     372    write(*,*) "phyetat0: Failed loading <tice>"
     373    tice(1:ngrid)=273.15-1.8
     374  endif
     375else
     376  tice(1:ngrid)=273.15-1.8
     377endif ! of if (startphy_file)
     378write(*,*) "phyetat0: Oceanic ice surface temperature <tice> range:", &
     379             minval(tice), maxval(tice)
    380380
    381381if (startphy_file) then
  • trunk/LMDZ.GENERIC/libf/phystd/phyredem.F90

    r3335 r3397  
    136136                    phystep,time,tsurf,tsoil,emis,albedo,q2,qsurf, &
    137137                    cloudfrac,totcloudfrac,hice, &
    138                     rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
     138                    rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice)
    139139  ! write time-dependent variable to restart file
    140140  use iostart, only : open_restartphy, close_restartphy, &
     
    171171  real,intent(in) :: tsea_ice(ngrid)
    172172  real,intent(in) :: sea_ice(ngrid)
    173 !  real,intent(in) :: tice(ngrid)
     173  real,intent(in) :: tice(ngrid)
    174174
    175175  integer :: iq
     
    208208   call put_field("tslab","Temperature slab ocean",tslab)
    209209   call put_field("tsea_ice","Temperature of top layer (seaice or snow)",tsea_ice)
    210 !   call put_field("tice","Temperature of seaice if snow on top",tice)
     210   call put_field("tice","Temperature of seaice",tice)
    211211   call put_field("sea_ice","Sea ice mass",sea_ice)
    212212 endif!(ok_slab_ocean)
  • trunk/LMDZ.GENERIC/libf/phystd/phys_state_var_mod.F90

    r3204 r3397  
    9292      real,dimension(:,:),allocatable,save :: tslab        ! Slab_ocean temperature (K)
    9393      real,dimension(:),allocatable,save ::  tsea_ice      ! Temperature of the top layer (K), either snow or ice
    94 !      real,dimension(:),allocatable,save :: tice           ! Sea ice temperature (K) if there is snow on top of it
     94!      real,dimension(:),allocatable,save :: tice           ! Sea ice temperature (K)
    9595      real,dimension(:),allocatable,save :: sea_ice
    9696      real,dimension(:),allocatable,save :: zmasq
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r3364 r3397  
    395395! local variables for DIAGNOSTICS : (diagfi & stat)
    396396! -------------------------------------------------
     397
     398      real tice(ngrid)                                   ! Sea ice temperature
     399
    397400      real ps(ngrid)                                     ! Surface Pressure.
    398401      real zt(ngrid,nlayer)                              ! Atmospheric Temperature.
     
    596599                       day_ini,time_phys,tsurf,tsoil,emis,albedo,     &
    597600                       q2,qsurf,cloudfrac,totcloudfrac,hice,          &
    598                        rnat,pctsrf_sic,tslab, tsea_ice,sea_ice)
     601                       rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice)
    599602
    600603#else
     
    605608#ifndef MESOSCALE
    606609         if (.not.startphy_file) then
    607            ! additionnal "academic" initialization of physics
     610           ! additional "academic" initialization of physics
    608611           if (is_master) write(*,*) "Physiq: initializing tsurf(:) to pt(:,1) !!"
    609612           tsurf(:)=pt(:,1)
     
    664667           enddo
    665668
    666            call ocean_slab_init(ptimestep, pctsrf_sic, tslab, tsea_ice, sea_ice, zmasq)
     669           call ocean_slab_init(ptimestep, pctsrf_sic, tslab, tice, sea_ice, zmasq)
    667670
    668671!!           CALL init_masquv(ngrid,zmasq)
    669672           ! ensure that "slab" variables match "physiq" ones
    670            call ocean_slab_get_vars(ngrid, tslab, tsea_ice, sea_ice, flux_g, &
     673           call ocean_slab_get_vars(ngrid, tslab, tice, sea_ice, flux_g, &
    671674                      dt_hdiff, dt_ekman, dt_gm)
    672675           
     
    19891992                      tsea_ice, -zdqsdif(:,igcm_h2o_vap), taux, tauy, zmasq)
    19901993
    1991             call ocean_slab_frac(pctsrf_sic, zmasq)
    1992 
    1993             call ocean_slab_get_vars(ngrid, tslab, tsea_ice, sea_ice, flux_g, &
     1994            call ocean_slab_frac(pctsrf_sic, zmasq) 
     1995             
     1996            call ocean_slab_get_vars(ngrid, tslab, tice, sea_ice, flux_g, &
    19941997                      dt_hdiff, dt_ekman, dt_gm)
     1998
     1999!!!            call ocean_slab_get_vars(ngrid, tslab, tsea_ice, sea_ice, flux_g, &
     2000!!!                      dt_hdiff, dt_ekman, dt_gm)
    19952001                     
    19962002!! sea_ice defines the sea ice thickness in kg/m2
     
    23892395           
    23902396            ! fetch "ocean variables" to ensure they are stored
    2391             call ocean_slab_get_vars(ngrid, tslab, tsea_ice, sea_ice, flux_g, &
     2397            call ocean_slab_get_vars(ngrid, tslab, tice, sea_ice, flux_g, &
    23922398                                     dt_hdiff, dt_ekman, dt_gm)
    23932399
     
    23962402                          tsurf,tsoil,emis,albedo,q2,qsurf_hist,  &
    23972403                          cloudfrac,totcloudfrac,hice,            &
    2398                           rnat,pctsrf_sic,tslab,tsea_ice,sea_ice)
     2404                          rnat,pctsrf_sic,tslab,tsea_ice,tice,sea_ice)
    23992405         endif
    24002406#endif
     
    24852491            call wstats(ngrid,"pctsrf_sic","pct ice/sea","",2,pctsrf_sic)
    24862492            call wstats(ngrid,"tsea_ice","top layer temp, snow/ice","K",2,tsea_ice)
    2487 !            call wstats(ngrid,"tice","ice temp if snow on top","K",2,tice)
     2493!            call wstats(ngrid,"tice","sea ice temperature","K",2,tice)
    24882494            call wstats(ngrid,"sea_ice","sea ice","kg/m2",2,sea_ice)
    24892495            call wstats(ngrid,"rnat","nature of the surface","",2,rnat)
     
    25282534         call writediagfi(ngrid,"pctsrf_sic","pct ice/sea","",2,pctsrf_sic)
    25292535         call writediagfi(ngrid,"tsea_ice","top layer temp, snow/ice","K",2,tsea_ice)
    2530 !         call writediagfi(ngrid,"tice","ice temp if snow on top","K",2,tice)
     2536!         call writediagfi(ngrid,"tice","sea ice temperature","K",2,tice)
    25312537         call writediagfi(ngrid,"sea_ice","sea ice","kg/m2",2,sea_ice)
    25322538         call writediagfi(ngrid,"tslab1","tslab1","K",2,tslab(:,1))
Note: See TracChangeset for help on using the changeset viewer.