Ignore:
Timestamp:
Jan 17, 2025, 5:14:18 PM (2 weeks ago)
Author:
jbclement
Message:

PEM:

  • Albedo is now updated only at the end of the PEM (and not at every iteration) + Correct way to set it taking into account CO2/H2O ice and frost.
  • Cosmetic cleanings.

JBC

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.COMMON/libf/evolution/pem.F90

    r3578 r3584  
    7575#ifndef CPP_STD
    7676    use comsoil_h,          only: tsoil, nsoilmx, ini_comsoil_h, inertiedat, mlayer, inertiesoil, flux_geo, nqsoil, qsoil
    77     use surfdat_h,          only: tsurf, emis, qsurf, watercap, ini_surfdat_h, &
    78                                   albedodat, zmea, zstd, zsig, zgam, zthe,    &
    79                                   albedo_h2o_frost,frost_albedo_threshold,     &
    80                                   emissiv, watercaptag, perennial_co2ice
     77    use surfdat_h,          only: tsurf, qsurf, emis, emissiv, emisice, ini_surfdat_h,  &
     78                                  albedodat, albedice, albedo_h2o_frost, albedo_h2o_cap, &
     79                                  zmea, zstd, zsig, zgam, zthe, frost_albedo_threshold,  &
     80                                  watercap, watercaptag, perennial_co2ice, albedo_perennialco2
    8181    use dimradmars_mod,     only: totcloudfrac, albedo
    8282    use dust_param_mod,     only: tauscaling
     
    287287
    288288! Loop variables
    289 integer :: i, l, ig, nnq, t, islope, ig_loop, islope_loop, isoil
     289integer :: i, l, ig, nnq, t, islope, ig_loop, islope_loop, isoil, icap
    290290
    291291! Elapsed time with system clock
     
    384384    endif
    385385
    386     call init_testphys1d('start1D.txt','startfi.nc',therestart1D,therestartfi,ngrid,nlayer,610.,nq,q,            &
    387                          time_0,ps_start_dyn(1),ucov,vcov,teta,ndt,ptif,pks,dtphys,zqsat,dq,dqdyn,day0,day,gru,grv,w,  &
     386    call init_testphys1d('start1D.txt','startfi.nc',therestart1D,therestartfi,ngrid,nlayer,610.,nq,q,                 &
     387                         time_0,ps_start_dyn(1),ucov,vcov,teta,ndt,ptif,pks,dtphys,zqsat,dq,dqdyn,day0,day,gru,grv,w, &
    388388                         play,plev,latitude,longitude,cell_area,atm_wat_profile,atm_wat_tau)
    389389    ps_start_dyn(2) = ps_start_dyn(1)
     
    844844                        enddo
    845845                    enddo outer2
    846                 endif
    847                 if (h2o_ice(ig,islope) > frost_albedo_threshold) then
    848                     albedo(ig,1,islope) = albedo_h2o_frost
    849                     albedo(ig,2,islope) = albedo_h2o_frost
    850                 else
    851                     albedo(ig,1,islope) = albedodat(ig)
    852                     albedo(ig,2,islope) = albedodat(ig)
    853                     emis(ig,islope) = emissiv
    854846                endif
    855847            else if (co2_ice(ig,islope) > 1.e-10 .and. d_co2ice(ig,islope) > 1.e-10) then ! Put tsurf as tcond CO2
     
    11151107deallocate(zplev_start0,zplev_new)
    11161108
     1109! III_a.6 Albedo update for start file
     1110do ig = 1,ngrid
     1111    if (latitude(ig) < 0.) then
     1112        icap = 2 ! Southern hemisphere
     1113    else
     1114        icap = 1 ! Northern hemisphere
     1115    endif
     1116    do islope = 1,ngrid
     1117        ! Bare ground
     1118        albedo(ig,:,islope) = albedodat(ig)
     1119        emis(ig,islope) = emissiv
     1120
     1121        ! CO2 ice/frost is treated after H20 ice/frost because it is considered dominant
     1122        ! H2O ice
     1123        if (h2o_ice(ig,islope) > 0.) then
     1124            albedo(ig,:,islope) = albedo_h2o_cap
     1125            emis(ig,islope) = 1.
     1126        endif
     1127        ! CO2 ice
     1128        if (co2_ice(ig,islope) > 0.) then
     1129            albedo(ig,:,islope) = albedo_perennialco2(icap)
     1130            emis(ig,islope) = emisice(icap)
     1131        endif
     1132        ! H2O frost
     1133        if (qsurf(ig,igcm_h2o_ice,islope) > 0.) then
     1134            albedo(ig,:,islope) = albedo_h2o_frost
     1135            emis(ig,islope) = 1.
     1136        endif
     1137        ! CO2 frost
     1138        if (qsurf(ig,igcm_co2,islope) > 0.) then
     1139            albedo(ig,:,islope) = albedice(icap)
     1140            emis(ig,islope) = emisice(icap)
     1141        endif
     1142    enddo
     1143enddo
     1144
     1145! III_a.7 Orbital parameters update for start file
    11171146if (evol_orbit_pem) call recomp_orb_param(i_myear,i_myear_leg)
    11181147
Note: See TracChangeset for help on using the changeset viewer.