Changeset 3784
- Timestamp:
- May 30, 2025, 11:45:56 AM (9 days ago)
- Location:
- trunk/LMDZ.COMMON/libf/evolution
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/changelog.txt
r3782 r3784 678 678 - Gathering the processes of "ice condensation" and "dust sedimentation" in the same framework of the layering algorithm 679 679 - Reordering the workflow to manage the different situations of the layering algorithm 680 681 == 30/05/2025 == JBC 682 Correction of 'h2o_ice_depth' update in the main loop. -
trunk/LMDZ.COMMON/libf/evolution/pem.F90
r3782 r3784 200 200 type(ptrarray), dimension(:,:), allocatable :: current ! Current active stratum in the layering 201 201 logical, dimension(:,:), allocatable :: new_str, new_lag ! Flags for the layering algorithm 202 real 202 real, dimension(:,:), allocatable :: h2o_ice_depth_old ! Old depth of subsurface ice layer 203 203 logical :: is_subsurface_ice ! Boolean to know if there is subsurface ice 204 204 … … 751 751 stopPEM = 0 752 752 if (layering_algo) then 753 allocate( new_str(ngrid,nslope),new_lag(ngrid,nslope),current(ngrid,nslope))753 allocate(h2o_ice_depth_old(ngrid,nslope),new_str(ngrid,nslope),new_lag(ngrid,nslope),current(ngrid,nslope)) 754 754 new_str = .true. 755 755 new_lag = .true. … … 834 834 allocate(zshift_surf(ngrid,nslope),zlag(ngrid,nslope)) 835 835 if (layering_algo) then 836 h2o_ice_depth_old = h2o_ice_depth 836 837 do islope = 1,nslope 837 838 do ig = 1,ngrid 838 839 call make_layering(layerings_map(ig,islope),d_co2ice(ig,islope),d_h2oice(ig,islope),new_str(ig,islope),zshift_surf(ig,islope),new_lag(ig,islope),zlag(ig,islope),current(ig,islope)%p) 839 co2_ice = 0.840 h2o_ice = 0.841 h2o_ice_depth = 0.840 co2_ice(ig,islope) = 0. 841 h2o_ice(ig,islope) = 0. 842 h2o_ice_depth(ig,islope) = 0. 842 843 if (is_co2ice_str(layerings_map(ig,islope)%top)) then 843 844 co2_ice(ig,islope) = layerings_map(ig,islope)%top%h_co2ice … … 1064 1065 do ig = 1,ngrid 1065 1066 do islope = 1,nslope 1066 if (is_h2oice_sublim_ini(ig,islope)) then 1067 h2o_ice_depth_old = h2o_ice_depth(ig,islope) 1068 h2o_ice_depth(ig,islope) = thickness_toplag(layerings_map(ig,islope)) 1069 call recomp_tend_h2o(h2o_ice_depth_old,h2o_ice_depth(ig,islope),tsurf_avg(ig,islope),tsoil_PEM_timeseries_old(ig,:,islope,:),tsoil_PEM_timeseries(ig,:,islope,:),d_h2oice(ig,islope)) 1070 endif 1067 if (is_h2oice_sublim_ini(ig,islope)) call recomp_tend_h2o(h2o_ice_depth_old(ig,islope),h2o_ice_depth(ig,islope),tsurf_avg(ig,islope),tsoil_PEM_timeseries_old(ig,:,islope,:),tsoil_PEM_timeseries(ig,:,islope,:),d_h2oice(ig,islope)) 1071 1068 enddo 1072 1069 enddo … … 1127 1124 deallocate(d_co2ice,d_co2ice_ini,d_h2oice) 1128 1125 deallocate(is_co2ice_ini,is_co2ice_sublim_ini,is_h2oice_sublim_ini) 1129 if (layering_algo) deallocate( new_str,new_lag,current)1126 if (layering_algo) deallocate(h2o_ice_depth_old,new_str,new_lag,current) 1130 1127 !------------------------------ END RUN -------------------------------- 1131 1128 -
trunk/LMDZ.COMMON/libf/evolution/recomp_tend_mod.F90
r3770 r3784 92 92 Rz_old = icetable_depth_old*zcdv/coef_diff ! Old resistance from PCM 93 93 Rz_new = icetable_depth_new*zcdv/coef_diff ! New resistance based on new depth 94 if (abs(Rz_old) < 1.e-10) then 95 R_dec = 1. 96 else 97 R_dec = Rz_new/Rz_old ! Decrease because of resistance 98 endif 94 R_dec = 1. 95 if (Rz_new >= Rz_old) R_dec = Rz_new/Rz_old ! Decrease because of resistance 99 96 100 97 ! The maxmimum of the daily averages over one year for the saturation vapor pressure at the ice table location … … 107 104 108 105 ! Lower humidity due to growing lag layer (higher depth) 109 print*, psv_max_old,psv_max_new110 106 hum_dec = psv_max_old/psv_max_new ! Decrease because of lower water vapor pressure at the new depth 111 107 112 108 ! Flux correction (decrease) 113 print*, 'aaaaah', R_dec,hum_dec114 109 d_h2oice = d_h2oice/R_dec/hum_dec 115 110
Note: See TracChangeset
for help on using the changeset viewer.