Changeset 4138 for trunk/LMDZ.COMMON/libf/evolution/ice_table.F90
- Timestamp:
- Mar 17, 2026, 4:22:44 PM (34 hours ago)
- File:
-
- 1 edited
-
trunk/LMDZ.COMMON/libf/evolution/ice_table.F90 (modified) (4 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/ice_table.F90
r4135 r4138 28 28 logical(k4), protected :: icetable_dynamic ! Flag to compute the icetable depth according to the dynamic method 29 29 30 ! VARIABLES31 ! ---------32 real(dp), allocatable, dimension(:,:) :: icetable_depth ! Depth of the ice table [m]33 real(dp), allocatable, dimension(:,:) :: icetable_thickness ! Thickness of the ice table [m]34 real(dp), allocatable, dimension(:,:,:) :: ice_porefilling ! Amount of porefilling in each layer in each grid [m^3/m^3]35 36 30 contains 37 31 !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 38 39 !=======================================================================40 SUBROUTINE ini_ice_table()41 !-----------------------------------------------------------------------42 ! NAME43 ! ini_ice_table44 !45 ! DESCRIPTION46 ! Allocate module arrays for ice table fields.47 !48 ! AUTHORS & DATE49 ! L. Lange50 ! JB Clement, 2023-202551 !52 ! NOTES53 !54 !-----------------------------------------------------------------------55 56 ! DEPENDENCIES57 ! ------------58 use geometry, only: ngrid, nslope, nsoil59 60 ! DECLARATION61 ! -----------62 implicit none63 64 ! CODE65 ! ----66 allocate(icetable_depth(ngrid,nslope))67 allocate(icetable_thickness(ngrid,nslope))68 allocate(ice_porefilling(ngrid,nsoil,nslope))69 icetable_depth(:,:) = 0._dp70 icetable_thickness(:,:) = 0._dp71 ice_porefilling(:,:,:) = 0._dp72 73 END SUBROUTINE ini_ice_table74 !=======================================================================75 76 !=======================================================================77 SUBROUTINE end_ice_table78 !-----------------------------------------------------------------------79 ! NAME80 ! end_ice_table81 !82 ! DESCRIPTION83 ! Deallocate ice table arrays.84 !85 ! AUTHORS & DATE86 ! L. Lange87 ! JB Clement, 2023-202588 !89 ! NOTES90 !91 !-----------------------------------------------------------------------92 93 ! DECLARATION94 ! -----------95 implicit none96 97 ! CODE98 ! ----99 if (allocated(icetable_depth)) deallocate(icetable_depth)100 if (allocated(icetable_thickness)) deallocate(icetable_thickness)101 if (allocated(ice_porefilling)) deallocate(ice_porefilling)102 103 END SUBROUTINE end_ice_table104 !=======================================================================105 32 106 33 !======================================================================= … … 256 183 257 184 !======================================================================= 258 SUBROUTINE compute_deltam_icetable(icetable_ thickness_old,ice_porefilling_old,tsurf,tsoil,delta_icetable)185 SUBROUTINE compute_deltam_icetable(icetable_depth,icetable_thickness,ice_porefilling,icetable_thickness_old,ice_porefilling_old,tsurf,tsoil,delta_icetable) 259 186 !----------------------------------------------------------------------- 260 187 ! NAME … … 286 213 ! ARGUMENTS 287 214 ! --------- 288 real(dp), dimension(:,:), intent(in) :: icetable_thickness_old ! Ice table thickness at the previous iteration [m] 289 real(dp), dimension(:,:,:), intent(in) :: ice_porefilling_old ! Ice pore filling at the previous iteration [m] 290 real(dp), dimension(:,:), intent(in) :: tsurf ! Surface temperature [K] 291 real(dp), dimension(:,:,:), intent(in) :: tsoil ! Soil temperature [K] 292 real(dp), dimension(:), intent(out) :: delta_icetable ! Mass of H2O ice that has been condensed on the ice table / sublimates from the ice table [kg/m^2] 215 real(dp), dimension(:,:), intent(in) :: icetable_depth ! Ice table depth [m] 216 real(dp), dimension(:,:), intent(in) :: icetable_thickness ! Ice table thickness [m] 217 real(dp), dimension(:,:,:), intent(in) :: ice_porefilling ! Ice pore filling [m] 218 real(dp), dimension(:,:), intent(in) :: icetable_thickness_old ! Ice table thickness at the previous iteration [m] 219 real(dp), dimension(:,:,:), intent(in) :: ice_porefilling_old ! Ice pore filling at the previous iteration [m] 220 real(dp), dimension(:,:), intent(in) :: tsurf ! Surface temperature [K] 221 real(dp), dimension(:,:,:), intent(in) :: tsoil ! Soil temperature [K] 222 real(dp), dimension(:), intent(out) :: delta_icetable ! Mass of H2O ice that has been condensed on the ice table / sublimates from the ice table [kg/m^2] 293 223 294 224 ! LOCAL VARIABLES … … 674 604 675 605 ! Mass of H2O exchange between the ssi and the atmosphere 676 call compute_deltam_icetable(icetable_ thickness_old,ice_porefilling_old,tsurf_avg,tsoil_avg,delta_icetable)606 call compute_deltam_icetable(icetable_depth,icetable_thickness,ice_porefilling,icetable_thickness_old,ice_porefilling_old,tsurf_avg,tsoil_avg,delta_icetable) 677 607 678 608 END SUBROUTINE evolve_ice_table
Note: See TracChangeset
for help on using the changeset viewer.
