Changeset 3088 for trunk/LMDZ.COMMON/libf
- Timestamp:
- Oct 16, 2023, 10:31:19 AM (14 months ago)
- Location:
- trunk/LMDZ.COMMON/libf/evolution
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/changelog.txt
r3082 r3088 101 101 - Correction of a bug in the initialization of constants. The correct modules are now used: 'comcstfi_h' (and no longer 'comconst_mod'!) in the general case and 'comcstfi_mod' in the case of generic model; 102 102 - Addition of the variable 'ecritpem' in "run_PEM.def" to set the frequency of outputs in the "diagfi.nc". By default, 'ecritpem = 1' which means there is one output at each PEM year. 103 104 == 16/10/2023 == JBC 105 - Addition of the bash script "concat_diagpem.sh" in deftank to concatenate all the "diagpem.nc" outputs into one file; 106 - Addition of "writediagpem_mod.F90" inspired by the subroutine "writediagfi.F" in phymars/; 107 - Renaming of PEM outputs ('startfi_PEM' -> 'startpem' and 'diagfi' -> 'diagpem'); 108 - Gathering of all "diagpem.nc" outputs at the same place at the end of the main PEM loop; 109 - Update of "launch_pem.sh", "README" and "modify_startfi_orbit.sh" in the deftank. -
trunk/LMDZ.COMMON/libf/evolution/pem.F90
r3082 r3088 8 8 ! I_f Compute tendencies & Save initial situation 9 9 ! I_g Save initial PCM situation 10 ! I_h Read the PEMstart10 ! I_h Read the startpem.nc 11 11 ! I_i Compute orbit criterion 12 12 … … 16 16 ! II_c CO2 & H2O glaciers flows 17 17 ! II_d Update surface and soil temperatures 18 ! II_e Update the tendencies 19 ! II_f Checking the stopping criterion 18 ! II_e Outputs 19 ! II_f Update the tendencies 20 ! II_g Checking the stopping criterion 20 21 21 22 ! III Output 22 23 ! III_a Update surface value for the PCM start files 23 24 ! III_b Write restart_evol.nc and restartfi_evol.nc 24 ! III_c Write restart fi_PEM.nc25 ! III_c Write restartpem.nc 25 26 !------------------------ 26 27 … … 69 70 use recomp_tend_co2_slope_mod, only: recomp_tend_co2_slope 70 71 use soil_pem_compute_mod, only: soil_pem_compute 72 use writediagpem_mod, only: writediagpem 71 73 72 74 #ifndef CPP_STD … … 598 600 !------------------------ 599 601 ! I Initialization 600 ! I_h Read the PEMstart601 !------------------------ 602 call pemetat0("start fi_PEM.nc",ngrid,nsoilmx,nsoilmx_PEM,nslope,timelen,timestep,TI_PEM,tsoil_PEM,porefillingice_depth, &602 ! I_h Read the startpem.nc 603 !------------------------ 604 call pemetat0("startpem.nc",ngrid,nsoilmx,nsoilmx_PEM,nslope,timelen,timestep,TI_PEM,tsoil_PEM,porefillingice_depth, & 603 605 porefillingice_thickness,tsurf_ave_yr1, tsurf_ave, q_co2_PEM_phys, q_h2o_PEM_phys,ps_timeseries, & 604 606 tsoil_phys_PEM_timeseries,tendencies_h2o_ice,tendencies_co2_ice,qsurf(:,igcm_co2,:), & … … 665 667 enddo 666 668 enddo 667 call writediagfi(ngrid,'ps_ave','Global average pressure','Pa',0,global_ave_press_new)668 669 669 670 if (adsorption_pem) then … … 741 742 call evol_co2_ice_s(qsurf(:,igcm_co2,:),tendencies_co2_ice,iim,jjm_value,ngrid,cell_area,nslope) 742 743 743 do islope = 1,nslope744 write(str2(1:2),'(i2.2)') islope745 call writediagfi(ngrid,'h2o_ice_s_slope'//str2,'H2O ice','kg.m-2',2,qsurf(:,igcm_h2o_ice,islope))746 call writediagfi(ngrid,'tendencies_h2o_ice_slope'//str2,'H2O ice tend','kg.m-2.year-1',2,tendencies_h2o_ice(:,islope))747 call writediagfi(ngrid,'c2ice_slope'//str2,'CO2 ice','kg.m-2',2,qsurf(:,igcm_co2,islope))748 call writediagfi(ngrid,'tendencies_co2_ice_slope'//str2,'CO2 ice tend','kg.m-2.year-1',2,tendencies_co2_ice(:,islope))749 enddo750 751 744 !------------------------ 752 745 ! II Run … … 754 747 !------------------------ 755 748 write(*,*) "CO2 glacier flows" 756 757 749 if (co2glaciersflow) call co2glaciers_evol(timelen,ngrid,nslope,iflat,subslope_dist,def_slope_mean,vmr_co2_pem_phys,ps_timeseries, & 758 750 global_ave_press_GCM,global_ave_press_new,qsurf(:,igcm_co2,:),flag_co2flow,flag_co2flow_mesh) 759 751 760 752 write(*,*) "H2O glacier flows" 761 762 753 if (h2oglaciersflow) call h2oglaciers_evol(timelen,ngrid,nslope,iflat,subslope_dist,def_slope_mean,tsurf_ave,qsurf(:,igcm_h2o_ice,:),flag_h2oflow,flag_h2oflow_mesh) 763 764 do islope = 1,nslope765 write(str2(1:2),'(i2.2)') islope766 call writediagfi(ngrid,'co2ice_slope'//str2,'CO2 ice','kg.m-2',2,qsurf(:,igcm_co2,islope))767 call writediagfi(ngrid,'tendencies_co2_ice_slope'//str2,'CO2 ice tend','kg.m-2.year-1',2,tendencies_co2_ice(:,islope))768 call writediagfi(ngrid,'Flow_co2ice_slope'//str2,'CO2 ice flow','Boolean',2,flag_co2flow(:,islope))769 enddo770 754 771 755 !------------------------ … … 845 829 enddo 846 830 847 do islope = 1,nslope848 write(str2(1:2),'(i2.2)') islope849 call writediagfi(ngrid,'tsurf_slope'//str2,'tsurf','K',2,tsurf(:,islope))850 enddo851 852 831 if (soil_pem) then 853 832 … … 919 898 !------------------------ 920 899 ! II Run 921 ! II_e Update the tendencies 900 ! II_e Outputs 901 !------------------------ 902 call writediagpem(ngrid,'ps_ave','Global average pressure','Pa',0,(/global_ave_press_new/)) 903 do islope = 1,nslope 904 write(str2(1:2),'(i2.2)') islope 905 call writediagpem(ngrid,'h2o_ice_s_slope'//str2,'H2O ice','kg.m-2',2,qsurf(:,igcm_h2o_ice,islope)) 906 call writediagpem(ngrid,'tendencies_h2o_ice_slope'//str2,'H2O ice tend','kg.m-2.year-1',2,tendencies_h2o_ice(:,islope)) 907 call writediagpem(ngrid,'tendencies_co2_ice_slope'//str2,'CO2 ice tend','kg.m-2.year-1',2,tendencies_co2_ice(:,islope)) 908 call writediagpem(ngrid,'co2ice_slope'//str2,'CO2 ice','kg.m-2',2,qsurf(:,igcm_co2,islope)) 909 call writediagpem(ngrid,'Flow_co2ice_slope'//str2,'CO2 ice flow','Boolean',2,flag_co2flow(:,islope)) 910 call writediagpem(ngrid,'tsurf_slope'//str2,'tsurf','K',2,tsurf(:,islope)) 911 enddo 912 913 !------------------------ 914 ! II Run 915 ! II_f Update the tendencies 922 916 !------------------------ 923 917 write(*,*) "Adaptation of the new co2 tendencies to the current pressure" … … 927 921 !------------------------ 928 922 ! II Run 929 ! II_ fChecking the stopping criterion923 ! II_g Checking the stopping criterion 930 924 !------------------------ 931 925 call criterion_waterice_stop(cell_area,ini_surf_h2o,qsurf(:,igcm_h2o_ice,:),STOPPING_water,ngrid,initial_h2o_ice) … … 1136 1130 !------------------------ 1137 1131 ! III Output 1138 ! III_c Write restart fi_PEM.nc1139 !------------------------ 1140 call pemdem0("restart fi_PEM.nc",longitude,latitude,cell_area,nsoilmx_PEM,ngrid, &1132 ! III_c Write restartpem.nc 1133 !------------------------ 1134 call pemdem0("restartpem.nc",longitude,latitude,cell_area,nsoilmx_PEM,ngrid, & 1141 1135 float(day_ini),0.,nslope,def_slope,subslope_dist) 1142 call pemdem1("restart fi_PEM.nc",i_myear,nsoilmx_PEM,ngrid,nslope,tsoil_PEM, &1136 call pemdem1("restartpem.nc",i_myear,nsoilmx_PEM,ngrid,nslope,tsoil_PEM, & 1143 1137 TI_PEM, porefillingice_depth,porefillingice_thickness, & 1144 1138 co2_adsorbded_phys,h2o_adsorbded_phys,water_reservoir) 1145 write(*,*) "restart fi_PEM.nc has been written"1139 write(*,*) "restartpem.nc has been written" 1146 1140 1147 1141 call info_run_PEM(year_iter,criterion_stop,i_myear,n_myear)
Note: See TracChangeset
for help on using the changeset viewer.