Changeset 2937
- Timestamp:
- Apr 13, 2023, 11:04:49 AM (20 months ago)
- Location:
- trunk/LMDZ.COMMON/libf/evolution
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/evol_h2o_ice_s_mod_slope.F90
r2888 r2937 80 80 print *, "Tendencies on ice increasing=", pos_tend 81 81 print *, "This can be due to the absence of water ice in the PCM run!!" 82 call criterion_waterice_stop(cell_area,1.,qsurf(:,:)*0.,STOPPING,ngrid,cell_area) 82 print *,cell_area,qsurf(:,:),ngrid,STOPPING 83 call criterion_waterice_stop(cell_area,1.,qsurf(:,:)*0.,STOPPING,ngrid,qsurf(:,:)*0.) 83 84 do i=1,ngrid 84 85 do islope=1,nslope -
trunk/LMDZ.COMMON/libf/evolution/pem.F90
r2919 r2937 195 195 !!!!!!!!!!!!!!!!!!!!!!!! SLOPE 196 196 REAL ,allocatable :: watercap_slope(:,:) ! Physics x Nslope: watercap per slope 197 REAL ,allocatable ::watercap_slope_saved ! Value saved at the previous time step197 REAL :: watercap_slope_saved ! Value saved at the previous time step 198 198 REAL , dimension(:,:), allocatable :: min_co2_ice_1 ! ngrid field : minimum of co2 ice at each point for the first year [kg/m^2] 199 199 REAL , dimension(:,:), allocatable :: min_co2_ice_2 ! ngrid field : minimum of co2 ice at each point for the second year [kg/m^2] … … 223 223 REAL, ALLOCATABLE :: inertiesoil(:,:) !Physic x Depth Thermal inertia of the mesh for restart [SI] 224 224 225 REAL, ALLOCATABLE :: TI_GCM(:,:,:) ! Physic x Depth x Slope Averaged GCM Thermal Inertia per slope [SI] 226 REAL, ALLOCATABLE :: TI_GCM_start(:,:,:) ! Same but for the start 225 REAL, ALLOCATABLE :: TI_GCM(:,:,:) ! Same but for the start 227 226 228 227 REAL,ALLOCATABLE :: ice_depth(:,:) ! Physic x SLope: Ice table depth [m] … … 369 368 370 369 allocate(watercap_slope(ngrid,nslope)) 371 allocate(TI_GCM _start(ngrid,nsoilmx,nslope))370 allocate(TI_GCM(ngrid,nsoilmx,nslope)) 372 371 allocate(inertiesoil(ngrid,nsoilmx)) 373 372 … … 380 379 watercap,inertiesoil,nslope,tsurf_slope, & 381 380 tsoil_slope,co2ice_slope,def_slope,def_slope_mean, & 382 subslope_dist,major_slope,albedo_slope,emiss_slope, TI_GCM _start, &381 subslope_dist,major_slope,albedo_slope,emiss_slope, TI_GCM, & 383 382 qsurf_slope,watercap_slope) 384 383 385 if(soil_pem) then 386 deallocate(TI_GCM_start) !not used then 387 endif 384 388 385 389 386 ! Remove unphysical values of surface tracer … … 496 493 allocate(tsurf_GCM_timeseries(ngrid,nslope,timelen)) 497 494 allocate(tsoil_GCM_timeseries(ngrid,nsoilmx,nslope,timelen)) 498 allocate(TI_GCM(ngrid,nsoilmx,nslope))499 495 allocate(q_co2_PEM_phys(ngrid,timelen)) 500 496 allocate(q_h2o_PEM_phys(ngrid,timelen)) 501 497 allocate(co2_ice_GCM_slope(ngrid,nslope,timelen)) 502 498 allocate(watersurf_density_ave(ngrid,nslope)) 503 allocate(watersoil_density_timeseries(n slope,nsoilmx,nslope,timelen))499 allocate(watersoil_density_timeseries(ngrid,nsoilmx,nslope,timelen)) 504 500 505 501 allocate(tsoil_ave_PEM_yr1(ngrid,nsoilmx_PEM,nslope)) … … 515 511 516 512 call read_data_GCM("data_GCM_Y1.nc",timelen, iim,jjm,ngrid,nslope,vmr_co2_gcm,ps_timeseries,min_co2_ice_1,min_h2o_ice_1,& 517 tsurf_ave_yr1,tsoil_ave_yr1, tsurf_GCM_timeseries,tsoil_GCM_timeseries, TI_GCM,q_co2_PEM_phys,q_h2o_PEM_phys,co2_ice_GCM_slope, &513 tsurf_ave_yr1,tsoil_ave_yr1, tsurf_GCM_timeseries,tsoil_GCM_timeseries,q_co2_PEM_phys,q_h2o_PEM_phys,co2_ice_GCM_slope, & 518 514 watersurf_density_ave,watersoil_density_timeseries) 519 515 … … 524 520 525 521 call read_data_GCM("data_GCM_Y2.nc",timelen,iim,jjm,ngrid,nslope,vmr_co2_gcm,ps_timeseries,min_co2_ice_2,min_h2o_ice_2, & 526 tsurf_ave,tsoil_ave, tsurf_GCM_timeseries,tsoil_GCM_timeseries, TI_GCM,q_co2_PEM_phys,q_h2o_PEM_phys,co2_ice_GCM_slope, &522 tsurf_ave,tsoil_ave, tsurf_GCM_timeseries,tsoil_GCM_timeseries,q_co2_PEM_phys,q_h2o_PEM_phys,co2_ice_GCM_slope, & 527 523 watersurf_density_ave,watersoil_density_timeseries) 528 524 … … 835 831 ! II.b. Evolution of the ice 836 832 print *, "Evolution of h2o ice" 833 837 834 call evol_h2o_ice_s_slope(qsurf_slope(:,igcm_h2o_ice,:),tendencies_h2o_ice,iim,jjm,ngrid,cell_area,STOPPING_1_water,nslope) 838 835 839 836 DO islope=1, nslope 840 837 write(str2(1:2),'(i2.2)') islope … … 994 991 call computeice_table_equilibrium(ngrid,nslope,nsoilmx_PEM,watercaptag,watersurf_density_ave,watersoil_density_PEM_ave,ice_depth) 995 992 996 print *, "Update soil propreties" 993 print *, "Update soil propreties" 994 997 995 ! II_d.4 Update the soil thermal properties 998 call update_soil(ngrid,nslope,nsoilmx ,nsoilmx_PEM,tendencies_h2o_ice,qsurf_slope(:,igcm_h2o_ice,:),global_ave_press_new, &996 call update_soil(ngrid,nslope,nsoilmx_PEM,tendencies_h2o_ice,qsurf_slope(:,igcm_h2o_ice,:),global_ave_press_new, & 999 997 ice_depth,TI_PEM) 1000 998 … … 1165 1163 fluxgeo_slope(:,:) = fluxgeo 1166 1164 call interpolate_TIPEM_TIGCM(ngrid,nslope,nsoilmx_PEM,nsoilmx,TI_PEM,TI_GCM) 1167 tsoil_slope(:,:,:) = tsoil_phys_PEM_timeseries(:,:,:,timelen) 1168 else 1169 TI_GCM(:,:,:)=TI_GCM_start(:,:,:) 1165 tsoil_slope(:,:,:) = tsoil_phys_PEM_timeseries(:,:,:,timelen) 1170 1166 endif !soil_pem 1171 1167 -
trunk/LMDZ.COMMON/libf/evolution/pemetat0.F90
r2905 r2937 90 90 91 91 write(*,*)'Is start PEM?',startpem_file 92 92 startpem_file = .true. 93 93 94 94 !1. Run … … 287 287 DO islope=1,nslope 288 288 write(num,fmt='(i2.2)') islope 289 call get_field("m co2_reg_ads_slope"//num,m_co2_regolith_phys(:,:,islope),found)289 call get_field("mh2o_reg_ads_slope"//num,m_co2_regolith_phys(:,:,islope),found2) 290 290 if((.not.found2)) then 291 291 m_h2o_regolith_phys(:,:,:) = 0. -
trunk/LMDZ.COMMON/libf/evolution/read_data_GCM.F90
r2897 r2937 3 3 ! 4 4 SUBROUTINE read_data_GCM(fichnom,timelen, iim_input,jjm_input,ngrid,nslope,vmr_co2_gcm_phys,ps_timeseries, & 5 min_co2_ice,min_h2o_ice,tsurf_ave,tsoil_ave,tsurf_gcm,tsoil_gcm, TI_ave,q_co2,q_h2o,co2_ice_slope, &5 min_co2_ice,min_h2o_ice,tsurf_ave,tsoil_ave,tsurf_gcm,tsoil_gcm,q_co2,q_h2o,co2_ice_slope, & 6 6 watersurf_density_ave,watersoil_density) 7 7 … … 44 44 REAL , INTENT(OUT) :: watersurf_density_ave(ngrid,nslope) ! Water density at the surface [kg/m^3] 45 45 REAL , INTENT(OUT) :: watersoil_density(ngrid,nsoilmx,nslope,timelen) ! Water density in the soil layer, time series [kg/m^3] 46 REAL, INTENT(OUT) :: TI_ave(ngrid,nsoilmx,nslope) ! Average Thermal Inertia of the concatenated file [SI]47 46 !=============================================================================== 48 47 ! Local Variables … … 71 70 REAL :: tsurf_gcm_dyn(iim_input+1,jjm_input+1,nslope,timelen) ! Surface temperature of the concatenated file, time series [K] 72 71 REAL :: tsoil_gcm_dyn(iim_input+1,jjm_input+1,nsoilmx,nslope,timelen)! Soil temperature of the concatenated file, time series [K] 73 REAL :: TI_gcm(iim_input+1,jjm_input+1,nsoilmx,nslope,timelen) ! Thermal Inertia of the concatenated file, times series [SI]74 REAL :: TI_ave_dyn(iim_input+1,jjm_input+1,nsoilmx,nslope) ! Average Thermal Inertia of the concatenated file [SI]75 72 REAL :: q_co2_dyn(iim_input+1,jjm_input+1,timelen) ! CO2 mass mixing ratio in the first layer [kg/m^3] 76 73 REAL :: q_h2o_dyn(iim_input+1,jjm_input+1,timelen) ! H2O mass mixing ratio in the first layer [kg/m^3] … … 156 153 157 154 print *, "Downloading data for tsoil_slope done" 158 print *, "Downloading data for inertiesoil_slope ..."159 160 DO islope=1,nslope161 write(num,fmt='(i2.2)') islope162 call get_var4("inertiesoil_slope"//num,TI_gcm(:,:,:,islope,:))163 ENDDO164 165 print *, "Downloading data for inertiesoil_slope done"166 155 167 156 print *, "Downloading data for watersoil_density ..." … … 196 185 if(soil_pem) then 197 186 call get_var4("tsoil",tsoil_gcm_dyn(:,:,:,1,:)) 198 call get_var4("inertiesoil",TI_gcm(:,:,:,1,:))199 187 endif !soil_pem 200 188 endif !nslope=1 … … 221 209 print *, "Computing average of tsoil" 222 210 tsoil_ave_dyn(:,:,:,:)=SUM(tsoil_gcm_dyn(:,:,:,:,:),5)/timelen 223 print *, "Computing average of TI"224 TI_ave_dyn(:,:,:,:)=SUM(TI_gcm(:,:,:,:,:),5)/timelen225 211 print *, "Computing average of watersurf_density" 226 212 watersurf_density_ave(:,:) = SUM(watersurf_density(:,:,:),3)/timelen … … 269 255 CALL gr_dyn_fi(1,iim_input+1,jjm_input+1,ngrid,min_h2o_ice_dyn(:,:,islope),min_h2o_ice(:,islope)) 270 256 if(soil_pem) then 271 CALL gr_dyn_fi(nsoilmx,iim_input+1,jjm_input+1,ngrid,TI_ave_dyn(:,:,:,islope),TI_ave(:,:,islope))272 257 DO l=1,nsoilmx 273 258 CALL gr_dyn_fi(1,iim_input+1,jjm_input+1,ngrid,tsoil_ave_dyn(:,:,l,islope),tsoil_ave(:,l,islope)) -
trunk/LMDZ.COMMON/libf/evolution/update_soil.F90
r2895 r2937 44 44 regolith_inertia(:,islope) = inertiedat_PEM(:,1) 45 45 do ig = 1,ngrid 46 write(*,*) 'ig,islope',ig,islope,tendencies_waterice(ig,islope),waterice(ig,islope) 46 47 if((tendencies_waterice(ig,islope).lt.-1e-5).and.(waterice(ig,islope).eq.0)) then 47 48 regolith_inertia(ig,islope) = inertie_averaged
Note: See TracChangeset
for help on using the changeset viewer.