Changeset 3933
- Timestamp:
- Oct 23, 2025, 3:27:07 PM (2 months ago)
- Location:
- trunk/LMDZ.COMMON/libf/evolution
- Files:
-
- 4 edited
-
changelog.txt (modified) (1 diff)
-
deftank/README (modified) (1 diff)
-
pem.F90 (modified) (1 diff)
-
surf_temp.F90 (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/changelog.txt
r3926 r3933 779 779 == 07/10/2025 == JBC 780 780 Updates of files in the deftank + parameter values for the layering algorithm. 781 782 == 23/10/2025 == JBC 783 Correction on dimensions for the new algoirthm introduced in r3907 to update of surface temperatue when ice disappeared. -
trunk/LMDZ.COMMON/libf/evolution/deftank/README
r3883 r3933 45 45 /!\ Do not forget to rename the PCM "run.def" into "run_PCM.def"; 46 46 > the starting files you want to run the PCM ("startfi.nc", "start.nc"/"start1D.txt"/profiles); 47 > the necessary PEM files ("launchPEM.sh", "lib_launchPEM.sh", "PCMrun.job", "PEMrun.job", "run_PEM. job" and "obl_ecc_lsp.asc";47 > the necessary PEM files ("launchPEM.sh", "lib_launchPEM.sh", "PCMrun.job", "PEMrun.job", "run_PEM.def" and "obl_ecc_lsp.asc"; 48 48 > the optional PEM files "diagpem.def" to define the PEM variables to be ouputted and "startpem.nc" to set the initial state of the PEM. 49 49 -
trunk/LMDZ.COMMON/libf/evolution/pem.F90
r3912 r3933 836 836 !------------------------ 837 837 ! II_d.1 Update Tsurf 838 call update_tsurf_nearest_baresoil(ngrid,nslope,iim,jjm ,tsurf_avg,co2_ice,is_co2ice_ini,co2ice_disappeared)838 call update_tsurf_nearest_baresoil(ngrid,nslope,iim,jjm_value,tsurf_avg,co2_ice,is_co2ice_ini,co2ice_disappeared) 839 839 840 840 if (soil_pem) then -
trunk/LMDZ.COMMON/libf/evolution/surf_temp.F90
r3907 r3933 7 7 !======================================================================= 8 8 9 SUBROUTINE update_tsurf_nearest_baresoil(ngrid,nslope,i m,jm,tsurf_avg,co2_ice,is_co2ice_ini,co2ice_disappeared)9 SUBROUTINE update_tsurf_nearest_baresoil(ngrid,nslope,iim_input,jjm_input,tsurf_avg,co2_ice,is_co2ice_ini,co2ice_disappeared) 10 10 11 11 implicit none 12 12 13 13 ! Inputs: 14 integer, intent(in) :: i m, jm, nslope, ngrid14 integer, intent(in) :: iim_input, jjm_input, nslope, ngrid 15 15 real, dimension(ngrid,nslope), intent(in) :: co2_ice 16 16 logical, dimension(ngrid,nslope), intent(in) :: is_co2ice_ini … … 19 19 logical, dimension(ngrid,nslope), intent(inout) :: co2ice_disappeared 20 20 ! Local variables: 21 real, parameter :: eps = 1.e-10 22 integer :: islope, i, j, k, radius, rmax, di, dj, ii, jj 23 logical :: found 24 real, dimension(im,jm,nslope) :: tsurf_ll, co2ice_ll, mask_co2ice_ini, co2ice_disappeared_ll 25 real, dimension(ngrid) :: tmp 21 real, parameter :: eps = 1.e-10 22 integer :: islope, i, j, k, radius, rmax, di, dj, ii, jj 23 logical :: found 24 real, dimension(iim_input + 1,jjm_input + 1,nslope) :: tsurf_ll, co2ice_ll, mask_co2ice_ini, co2ice_disappeared_ll 25 real, dimension(ngrid) :: tmp 26 27 write(*,*) "> Updating surface temperature where ice disappeared" 26 28 27 29 ! Convert from reduced grid to lon-lat grid 28 30 #ifndef CPP_1D 29 31 do islope = 1,nslope 30 call gr_fi_dyn(1,ngrid,i m,jm,tsurf_avg(:,islope),tsurf_ll(:,:,islope))31 call gr_fi_dyn(1,ngrid,i m,jm,co2_ice(:,islope),co2ice_ll(:,:,islope))32 call gr_fi_dyn(1,ngrid,i m,jm,merge(1.,0.,is_co2ice_ini(:,islope)),mask_co2ice_ini(:,:,islope))33 call gr_fi_dyn(1,ngrid,i m,jm,merge(1.,0.,co2ice_disappeared(:,islope)),co2ice_disappeared_ll(:,:,islope))32 call gr_fi_dyn(1,ngrid,iim_input + 1,jjm_input + 1,tsurf_avg(:,islope),tsurf_ll(:,:,islope)) 33 call gr_fi_dyn(1,ngrid,iim_input + 1,jjm_input + 1,co2_ice(:,islope),co2ice_ll(:,:,islope)) 34 call gr_fi_dyn(1,ngrid,iim_input + 1,jjm_input + 1,merge(1.,0.,is_co2ice_ini(:,islope)),mask_co2ice_ini(:,:,islope)) 35 call gr_fi_dyn(1,ngrid,iim_input + 1,jjm_input + 1,merge(1.,0.,co2ice_disappeared(:,islope)),co2ice_disappeared_ll(:,:,islope)) 34 36 enddo 35 37 #else … … 41 43 42 44 ! For each point where ice disappeared 43 rmax = max(i m,jm)44 do j = 1,j m45 do i = 1,i m45 rmax = max(iim_input + 1,jjm_input + 1) 46 do j = 1,jjm_input + 1 47 do i = 1,iim_input + 1 46 48 do islope = 1,nslope 47 49 if (mask_co2ice_ini(i,j,islope) > 0.5 .and. co2ice_ll(i,j,islope) < eps .and. co2ice_disappeared_ll(i,j,islope) < 0.5) then … … 63 65 ii = i + di 64 66 jj = j + dj 65 if (ii >= 1 .and. ii <= i m .and. jj >= 1 .and. jj <= jm) then67 if (ii >= 1 .and. ii <= iim_input + 1 .and. jj >= 1 .and. jj <= jjm_input + 1) then 66 68 do k = 1,nslope 67 69 if (mask_co2ice_ini(ii,jj,k) < 0.5) then … … 88 90 #ifndef CPP_1D 89 91 do islope = 1,nslope 90 call gr_dyn_fi(1,i m,jm,ngrid,tsurf_ll(:,:,islope),tsurf_avg(:,islope))91 call gr_dyn_fi(1,i m,jm,ngrid,co2ice_disappeared_ll(:,:,islope),tmp)92 call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,tsurf_ll(:,:,islope),tsurf_avg(:,islope)) 93 call gr_dyn_fi(1,iim_input + 1,jjm_input + 1,ngrid,co2ice_disappeared_ll(:,:,islope),tmp) 92 94 where (tmp > 0.5) co2ice_disappeared(:,islope) = .true. 93 95 enddo
Note: See TracChangeset
for help on using the changeset viewer.
