Ignore:
Timestamp:
Sep 1, 2025, 6:45:25 PM (4 months ago)
Author:
jbclement
Message:

PEM:
Correction for the update of surface temperature when ice is disappearing: now it is really set as the surface temperature of the nearest bare soil point because we check the lon-lat grid and not the reduced grid.
JBC

File:
1 edited

Legend:

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

    r3851 r3907  
    7575use job_timelimit_mod,          only: timelimit, antetime, timewall
    7676use paleoclimate_mod,           only: h2o_ice_depth, zdqsdif_ssi_tot
     77use surf_temp,                  only: update_tsurf_nearest_baresoil
    7778
    7879#ifndef CPP_STD
     
    834835!------------------------
    835836! II_d.1 Update Tsurf
    836     write(*,*) "> Updating surface temperature"
    837     do ig = 1,ngrid
    838         do islope = 1,nslope
    839             ! CO2 ice disappeared so we look for the closest point without CO2 ice
    840             if (is_co2ice_ini(ig,islope) .and. co2_ice(ig,islope) < 1.e-10 .and. .not. co2ice_disappeared(ig,islope)) then
    841                 co2ice_disappeared(ig,islope) = .true.
    842                 if (latitude_deg(ig) > 0.) then ! North hemisphere
    843                     outer1: do ig_loop = ig,ngrid ! Go towards equator
    844                         do islope_loop = islope - 1,1,-1 ! Go over the slopes (backward numbering - should be equator-ward)
    845                             if (.not. is_co2ice_ini(ig_loop,islope_loop) .and. co2_ice(ig_loop,islope_loop) < 1.e-10) then
    846                                 tsurf_avg(ig,islope) = tsurf_avg(ig_loop,islope_loop)
    847                                 exit outer1
    848                             endif
    849                         enddo
    850                         do islope_loop = islope + 1,nslope ! Go over the slopes (forward numbering - should be pole-ward)
    851                             if (.not. is_co2ice_ini(ig_loop,islope_loop) .and. co2_ice(ig_loop,islope_loop) < 1.e-10) then
    852                                 tsurf_avg(ig,islope) = tsurf_avg(ig_loop,islope_loop)
    853                                 exit outer1
    854                             endif
    855                         enddo
    856                     enddo outer1
    857                 else ! South hemisphere
    858                     outer2: do ig_loop = ig,1,-1 ! Go towards equator
    859                         do islope_loop = islope + 1,nslope ! Go over the slopes (forward numbering - should be equator-ward)
    860                             if (.not. is_co2ice_ini(ig_loop,islope_loop) .and. co2_ice(ig_loop,islope_loop) < 1.e-10) then
    861                                 tsurf_avg(ig,islope) = tsurf_avg(ig_loop,islope_loop)
    862                                 exit outer2
    863                             endif
    864                         enddo
    865                         do islope_loop = islope - 1,1,-1 ! Go over the slopes (backward numbering - should be pole-ward)
    866                             if (.not. is_co2ice_ini(ig_loop,islope_loop) .and. co2_ice(ig_loop,islope_loop) < 1.e-10) then
    867                                 tsurf_avg(ig,islope) = tsurf_avg(ig_loop,islope_loop)
    868                                 exit outer2
    869                             endif
    870                         enddo
    871                     enddo outer2
    872                 endif
    873             else if (co2_ice(ig,islope) > 1.e-10 .and. d_co2ice(ig,islope) > 1.e-10) then ! Put tsurf as Tcond CO2
    874                 call computeTcondCO2(timelen,ngrid,nslope,vmr_co2_PEM_phys,ps_timeseries,ps_avg_global_ini,ps_avg_global_new,tsurf_avg)
    875             endif
    876         enddo
    877     enddo
     837    call update_tsurf_nearest_baresoil(ngrid,nslope,iim,jjm,tsurf_avg,co2_ice,is_co2ice_ini,co2ice_disappeared)
    878838
    879839    if (soil_pem) then
Note: See TracChangeset for help on using the changeset viewer.