- Timestamp:
- Nov 26, 2025, 5:06:13 PM (7 days ago)
- Location:
- trunk
- Files:
-
- 2 added
- 2 deleted
- 11 edited
-
LMDZ.COMMON/libf/evolution/changelog.txt (modified) (1 diff)
-
LMDZ.COMMON/libf/evolution/compute_tend_mod.F90 (modified) (1 diff)
-
LMDZ.COMMON/libf/evolution/deftank/PCMrun.job (modified) (1 diff)
-
LMDZ.COMMON/libf/evolution/deftank/PEMrun.job (modified) (2 diffs)
-
LMDZ.COMMON/libf/evolution/deftank/README (modified) (5 diffs)
-
LMDZ.COMMON/libf/evolution/deftank/clean.sh (modified) (2 diffs)
-
LMDZ.COMMON/libf/evolution/deftank/lib_launchPEM.sh (modified) (9 diffs)
-
LMDZ.COMMON/libf/evolution/grid_conversion.F90 (added)
-
LMDZ.COMMON/libf/evolution/pem.F90 (modified) (9 diffs)
-
LMDZ.COMMON/libf/evolution/read_XIOS_data.F90 (added)
-
LMDZ.COMMON/libf/evolution/read_data_PCM_mod.F90 (deleted)
-
LMDZ.COMMON/libf/evolution/reshape_XIOS_output.F90 (deleted)
-
LMDZ.COMMON/libf/evolution/stopping_crit_mod.F90 (modified) (2 diffs)
-
LMDZ.COMMON/libf/evolution/surf_temp.F90 (modified) (3 diffs)
-
LMDZ.MARS/deftank/file_def_physics_mars.xml (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.COMMON/libf/evolution/changelog.txt
r3967 r3977 797 797 == 20/11/2025 == JBC 798 798 New management of stopping criteria: giving explicit names and collecting everything in the same place. 799 800 == 26/11/2025 == JBC 801 - All operations computed by the PEM on the PCM data (averages, minima) are now performed by XIOS with two dedicated file. One is for daily operation outputs ("Xoutdaily4pem*.nc") and the other for yearly operation outputs ("Xoutyearly4pem*.nc"). 802 - Deletion of the reshaping tool "reshape_XIOS_output" used to convert XIOS outputs onto the PCM grid. Thus, the PEM is now able to read directly the format of XIOS outputs. 803 - Addition of subroutines to convert data between a lon x lat array and a vector. -
trunk/LMDZ.COMMON/libf/evolution/compute_tend_mod.F90
r3498 r3977 17 17 !======================================================================= 18 18 19 ! arguments: 20 ! ---------- 21 ! INPUT 19 ! Arguments 20 ! --------- 22 21 integer, intent(in) :: ngrid ! # of grid points 23 22 integer, intent(in) :: nslope ! # of subslopes 24 23 real, dimension(ngrid,nslope,2), intent(in) :: min_ice ! Minima of ice at each point for the PCM years 24 real, dimension(ngrid,nslope), intent(out) :: d_ice ! Difference between the minima = evolution of perennial ice 25 25 26 ! OUTPUT 27 real, dimension(ngrid,nslope), intent(out) :: d_ice ! Difference between the minima = evolution of perennial ice 28 !======================================================================= 26 ! Code 27 ! ---- 29 28 ! We compute the difference 30 29 d_ice = min_ice(:,:,2) - min_ice(:,:,1) -
trunk/LMDZ.COMMON/libf/evolution/deftank/PCMrun.job
r3869 r3977 59 59 k=0 60 60 if [ $(echo "$k > 0" | bc) -eq 1 ]; then # Only the last 2 years are taken for the PEM 61 cp Xdiurnalave.nc data2reshape_Y${k}.nc 61 cp Xoutdaily4pem.nc Xoutdaily4pem_Y${k}.nc 62 cp Xoutyearly4pem.nc Xoutyearly4pem_Y${k}.nc 62 63 fi 63 mv Xdiurnalave.nc diags/data2reshape${iPCM}.nc 64 mv Xoutdaily4pem.nc diags/Xoutdaily4pem${iPCM}.nc 65 mv Xoutyearly4pem.nc diags/Xoutyearly4pem${iPCM}.nc 64 66 cp restartfi.nc starts/restartfi${iPCM}.nc 65 67 mv restartfi.nc startfi.nc -
trunk/LMDZ.COMMON/libf/evolution/deftank/PEMrun.job
r3869 r3977 23 23 exePEM="pem_64x48x32_phymars_seq.e" 24 24 25 # Name of executable for reshaping PCM data with XIOS:26 exeReshape="reshape_XIOS_output_64x48x32_phymars_seq.e"27 28 25 # Argument for the PEM execution ("--auto-exit" for SLURM and PBS/TORQUE | "" when the script is not run as a job): 29 26 arg_pem="--auto-exit" … … 32 29 33 30 ulimit -s unlimited 34 35 # Reshaping PCM data with XIOS36 echo "Reshaping PCM data with XIOS is starting."37 ./$exeReshape38 if [ ! -f "data_PCM_Y1.nc" ] || [ ! -f "data_PCM_Y2.nc" ]; then # Check if it ended abnormally39 echo "Error: the reshaping executable crashed!"40 exit 141 fi42 31 43 32 # Running the PEM -
trunk/LMDZ.COMMON/libf/evolution/deftank/README
r3958 r3977 17 17 Installation: 18 18 ------------- 19 The PEM can be downloaded alongside the "LMDZ.COMMON" repository of your trunk. The Fortran code is in the following directory: "trunk/LMDZ.COMMON/libf/evolution/". The two PEM programs are "pem.F90" and "reshape_XIOS_output.F90".19 The PEM can be downloaded alongside the "LMDZ.COMMON" repository of your trunk. The Fortran code is in the following directory: "trunk/LMDZ.COMMON/libf/evolution/". The PEM main program is "pem.F90". 20 20 21 21 Compilation: … … 26 26 2) [planet] : mars to use the Mars planet physics package; 27 27 3) [dimensions]: 64x48x54 to define the grid you want to use (longitude x latitude x atmospheric layers). 28 To run the PEM, you need a dedicated reshaping tool with consistent options. To compile it, in "LMDZ_COMMON", do: ./makelmdz_fcm -arch [local] -p [planet] -d [dimensions] -j 8 reshape_XIOS_output 29 To run the PEM, you also need a PCM working with XIOS and consistent options. To compile it, in "LMDZ.COMMON", do: ./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm 28 To run the PEM, you need a PCM working with XIOS and consistent options. To compile it, in "LMDZ.COMMON", do: ./makelmdz_fcm -arch [local] -p [planet] -parallel mpi_omp -io xios -d [dimensions] -j 8 gcm 30 29 After compilation, the executable file can be found in the "bin" sub-directory. 31 30 … … 42 41 ------------- 43 42 To run the PEM, you can create a folder in which you need the following files: 44 > your executable files for the PCM , the PEM and the reshaping toolwith consistent options;43 > your executable files for the PCM and the PEM with consistent options; 45 44 > the xml files for XIOS which can be found in the PCM deftank folder: "iodef.xml", "context_lmdz_physics.xml", "file_def_physics_mars.xml" and "field_def_physics_mars.xml"; 46 45 > the def files you want to run the PCM: "run.def", "callphys.def", "traceur.def", etc. … … 63 62 The PEM simulation generates the following files: 64 63 > the usual outputs of the PCM: "restartfi.nc", "restart.nc", "diagfi.nc", etc; 65 > the XIOS outputs of the PCM , then reshaped: "Xdiurnalave.nc"/"data2reshape*.nc"/"data_PCM_Y*.nc";64 > the XIOS outputs of the PCM: "Xoutdaily4pem*.nc"/"Xoutyearly4pem*.nc"; 66 65 > the outputs of the chained simulation: "launchPEM.log", "info_PEM.txt" and possibly "kill_launchPEM.sh"; 67 66 > the usual outputs of the PEM: "restartfi.nc", "restart.nc"/"restart1D.txt" and "diagpem.nc". … … 99 98 > The headers correspond to the ADASTRA supercomputer and should be changed for other machines and job schedulers. In case of "processing scripts" launching mode, the headers are naturally omitted. 100 99 > The path to source the arch file should be adapted to the machine. 101 > The name of the PEM and Reshaping executable filesshould be adapted.100 > The name of the PEM executable file should be adapted. 102 101 > The PEM executable can have an optional argument which should be specified according to the set-up ("--auto-exit" for SLURM and PBS/TORQUE | "" when the script is not run as a job). 103 102 -
trunk/LMDZ.COMMON/libf/evolution/deftank/clean.sh
r3926 r3977 11 11 # Cleaning of files in the current folder 12 12 rm -f Bands*.dat 13 rm -f data2reshape*14 rm -f data_PCM_Y*15 13 rm -f info_PEM.txt 16 14 find . -type f -name "PCMrun*.job" ! -name "PCMrun.job" -delete … … 21 19 rm -f start*.nc 22 20 rm -f used_* 23 rm -f X diurnalave.nc21 rm -f Xout*4pem*.nc 24 22 rm -f xios_client_* 25 23 rm -f diag*.nc -
trunk/LMDZ.COMMON/libf/evolution/deftank/lib_launchPEM.sh
r3958 r3977 73 73 modify_xml() { 74 74 tmp="tmp_file_def.xml" 75 in_diurnalave=false 76 in_diurnalave_s=false 75 in_outdaily4pem=false 76 in_outyearly4pem=false 77 in_outdaily4pem_s=false 78 in_outyearly4pem_s=false 77 79 78 80 sed -i 's/enabled="\.true\.\">/enabled=".false.">/g' file_def_physics_mars.xml 79 81 80 82 while IFS= read -r line; do 83 # Detect file blocks 81 84 case "$line" in 82 *'<file id=" diurnalave"'*)83 in_ diurnalave=true85 *'<file id="outdaily4pem"'*) 86 in_outdaily4pem=true 84 87 ;; 85 *'<file id="diurnalave_s"'*) 86 in_diurnalave_s=true 88 *'<file id="outyearly4pem"'*) 89 in_outyearly4pem=true 90 ;; 91 *'<file id="outdaily4pem_s"'*) 92 in_outdaily4pem_s=true 93 ;; 94 *'<file id="outyearly4pem_s"'*) 95 in_outyearly4pem_s=true 87 96 ;; 88 97 esac … … 90 99 # Handle enabled attribute 91 100 if [[ $line == *'enabled="'* ]]; then 92 if $in_ diurnalave; then101 if $in_outdaily4pem || $in_outyearly4pem; then 93 102 if [[ $ns -eq 1 ]]; then 94 103 line=' enabled=".true.">' … … 96 105 line=' enabled=".false.">' 97 106 fi 98 elif $in_ diurnalave_s; then107 elif $in_outdaily4pem_s || $in_outyearly4pem_s; then 99 108 if [[ $ns -eq 1 ]]; then 100 109 line=' enabled=".false.">' … … 105 114 fi 106 115 107 # Detectslope variables108 if $in_diurnalave_s&& [[ $line =~ slope([0-9]+) ]]; then116 # Handle slope variables 117 if ( $in_outdaily4pem_s || $in_outyearly4pem_s ) && [[ $line =~ slope([0-9]+) ]]; then 109 118 slope_id="${BASH_REMATCH[1]}" 110 119 if (( 10#$slope_id > ns )); then … … 122 131 fi 123 132 133 134 # Leaving the file block 124 135 case "$line" in 125 136 *'</file>'*) 126 in_diurnalave=false 127 in_diurnalave_s=false 137 in_outdaily4pem=false 138 in_outyearly4pem=false 139 in_outdaily4pem_s=false 140 in_outyearly4pem_s=false 128 141 ;; 129 142 esac … … 441 454 cleanfiles diags/diagfi .nc $irelaunch 442 455 cleanfiles diags/diagsoil .nc $irelaunch 443 cleanfiles diags/data2reshape .nc $irelaunch 456 cleanfiles diags/Xoutdaily4pem .nc $irelaunch 457 cleanfiles diags/Xoutyearly4pem .nc $irelaunch 444 458 cleanfiles logs/runPCM .log $irelaunch 445 459 cleanfiles starts/restart1D .txt $irelaunch … … 473 487 fi 474 488 if [ $irelaunch -eq $(($nPCM_ini - 1)) ]; then 475 cp diags/data2reshape${irelaunch}.nc data2reshape_Y1.nc 489 cp diags/Xoutdaily4pem${irelaunch}.nc Xoutdaily4pem_Y1.nc 490 cp diags/Xoutyearly4pem${irelaunch}.nc Xoutyearly4pem_Y1.nc 476 491 cyclelaunch $1 $2 $nPCM_ini $iPCM 477 492 elif [ $irelaunch -eq $nPCM_ini ]; then 478 cp diags/data2reshape$(($irelaunch - 1)).nc data2reshape_Y1.nc 479 cp diags/data2reshape${irelaunch}.nc data2reshape_Y2.nc 493 cp diags/Xoutdaily4pem$(($irelaunch - 1)).nc Xoutdaily4pem_Y1.nc 494 cp diags/Xoutyearly4pem$(($irelaunch - 1)).nc Xoutyearly4pem_Y1.nc 495 cp diags/Xoutdaily4pem${irelaunch}.nc Xoutdaily4pem_Y2.nc 496 cp diags/Xoutyearly4pem${irelaunch}.nc Xoutyearly4pem_Y2.nc 480 497 submitPEM $1 # The next job is a PEM run 481 498 else … … 501 518 cp starts/restartpem$(($iPEM - 1)).nc startpem.nc 502 519 if [ $il -eq $(($nPCM - 1)) ]; then # Second to last PCM run 503 cp diags/data2reshape${irelaunch}.nc data2reshape_Y1.nc 520 cp diags/Xoutdaily4pem${irelaunch}.nc Xoutdaily4pem_Y1.nc 521 cp diags/Xoutyearly4pem${irelaunch}.nc Xoutyearly4pem_Y1.nc 504 522 cyclelaunch $1 $2 $nPCM $(($il + 1)) 505 523 elif [ $il -eq $nPCM ]; then # Last PCM run so the next job is a PEM run 506 cp diags/data2reshape$(($irelaunch - 1)).nc data2reshape_Y1.nc 507 cp diags/data2reshape${irelaunch}.nc data2reshape_Y2.nc 524 cp diags/Xoutdaily4pem$(($irelaunch - 1)).nc Xoutdaily4pem_Y1.nc 525 cp diags/Xoutyearly4pem$(($irelaunch - 1)).nc Xoutyearly4pem_Y1.nc 526 cp diags/Xoutdaily4pem${irelaunch}.nc Xoutdaily4pem_Y2.nc 527 cp diags/Xoutyearly4pem${irelaunch}.nc Xoutyearly4pem_Y2.nc 508 528 submitPEM $1 509 529 else … … 527 547 cleanfiles starts/restart .nc $(($iPCM - 1)) 528 548 cleanfiles starts/restartfi .nc $(($iPCM - 1)) 529 cleanfiles diags/data2reshape .nc $(($iPCM - 1)) 549 cleanfiles diags/Xoutdaily4pem .nc $(($iPCM - 1)) 550 cleanfiles diags/Xoutyearly4pem .nc $(($iPCM - 1)) 530 551 cleanfiles diags/diagpem .nc $irelaunch 531 552 cleanfiles diags/diagsoilpem .nc $irelaunch -
trunk/LMDZ.COMMON/libf/evolution/pem.F90
r3974 r3977 6 6 ! I_d Read the PCM data and convert them to the physical grid 7 7 ! I_e Initialization of the PEM variable and soil 8 ! I_f Compute tendencies 9 ! I_g Compute global surface pressure 10 ! I_h Read the "startpem.nc" 11 ! I_i Compute orbit criterion 8 ! I_f Compute global surface pressure 9 ! I_g Read the "startpem.nc" 10 ! I_h Compute orbit criterion 12 11 13 12 ! II Run … … 64 63 use get_timelen_PCM_mod, only: get_timelen_PCM 65 64 use pemetat0_mod, only: pemetat0 66 use read_ data_PCM_mod, only: read_data_PCM65 use read_XIOS_data, only: read_PCM_data 67 66 use recomp_tend_mod, only: recomp_tend_co2, recomp_tend_h2o 68 67 use compute_soiltemp_mod, only: compute_tsoil_pem, shift_tsoil2surf … … 86 85 use tracer_mod, only: noms, igcm_h2o_ice, igcm_co2, mmol, igcm_h2o_vap ! Tracer names and molar masses 87 86 use mod_phys_lmdz_para, only: is_parallel, is_sequential, is_mpi_root, is_omp_root, is_master 87 use planete_h, only: year_day 88 88 use surfini_mod, only: surfini 89 89 use comcstfi_h, only: mugaz … … 156 156 real, dimension(:,:), allocatable :: h2o_ice ! h2o ice in the PEM 157 157 real, dimension(:,:), allocatable :: d_h2oice ! physical point x slope field: Tendency of evolution of perennial h2o ice 158 real, dimension(:,:,:), allocatable :: min_h2o_ice ! Minima of h2o ice at each point for the PCM years [kg/m^2]159 158 real :: h2oice_ini_surf ! Initial surface of sublimating h2o ice 160 159 logical, dimension(:,:), allocatable :: is_h2oice_sublim_ini ! Logical array to know if h2o ice is sublimating … … 179 178 real, dimension(:,:), allocatable :: d_co2ice_ini ! physical point x slope field: Tendency of evolution of perennial co2 ice over a year in the PCM 180 179 logical, dimension(:,:), allocatable :: is_co2ice_ini ! Was there co2 ice initially in the PEM? 181 real, dimension(:,:,:), allocatable :: min_co2_ice ! Minimum of co2 ice at each point for the first year [kg/m^2]182 180 real :: co2ice_sublim_surf_ini ! Initial surface of sublimating co2 ice 183 181 logical, dimension(:,:), allocatable :: is_co2ice_sublim_ini ! Logical array to know if co2 ice is sublimating … … 442 440 !------------------------ 443 441 ! First we read the evolution of water and co2 ice (and the mass mixing ratio) over the first year of the PCM run, saving only the minimum value 444 call get_timelen_PCM(" data_PCM_Y1.nc",timelen)442 call get_timelen_PCM("Xoutdaily4pem_Y1.nc",timelen) 445 443 446 444 allocate(vmr_co2_PCM(ngrid,timelen),q_co2_PEM_phys(ngrid,timelen),q_h2o_PEM_phys(ngrid,timelen)) 447 445 allocate(ps_timeseries(ngrid,timelen),ps_avg(ngrid)) 448 allocate(min_co2_ice(ngrid,nslope,2),min_h2o_ice(ngrid,nslope,2))449 446 allocate(tsurf_avg_yr1(ngrid,nslope),tsurf_avg(ngrid,nslope)) 450 447 allocate(tsoil_avg(ngrid,nsoilmx,nslope),tsoil_timeseries(ngrid,nsoilmx,nslope,timelen)) 451 448 allocate(watersurf_density_avg(ngrid,nslope),watersoil_density_timeseries(ngrid,nsoilmx,nslope,timelen)) 452 453 call read_data_PCM("data_PCM_Y1.nc","data_PCM_Y2.nc",timelen,iim,jjm_value,ngrid,nslope,vmr_co2_PCM,ps_timeseries,ps_avg,tsurf_avg_yr1,tsurf_avg, & 454 tsoil_avg,tsoil_timeseries,min_co2_ice,min_h2o_ice,q_co2_PEM_phys,q_h2o_PEM_phys,watersurf_density_avg,watersoil_density_timeseries) 449 allocate(d_co2ice(ngrid,nslope),d_h2oice(ngrid,nslope),d_co2ice_ini(ngrid,nslope)) 450 451 call read_PCM_data(ngrid,nslope,nsoilmx,timelen,ps_avg,tsurf_avg,tsurf_avg_yr1,tsoil_avg,tsoil_timeseries,watersurf_density_avg,d_h2oice,d_co2ice,ps_timeseries,q_h2o_PEM_phys,q_co2_PEM_phys,watersoil_density_timeseries) 452 vmr_co2_PCM = q_co2_PEM_phys/(A*q_co2_PEM_phys + B)/m_co2 453 d_co2ice_ini = d_co2ice 455 454 456 455 ! Compute the deviation from the average … … 488 487 !------------------------ 489 488 ! I Initialization 490 ! I_f Compute tendencies 491 !------------------------ 492 allocate(d_co2ice(ngrid,nslope),d_h2oice(ngrid,nslope),d_co2ice_ini(ngrid,nslope)) 493 call compute_tend(ngrid,nslope,min_co2_ice,d_co2ice) 494 call compute_tend(ngrid,nslope,min_h2o_ice,d_h2oice) 495 d_co2ice_ini = d_co2ice 496 deallocate(min_co2_ice,min_h2o_ice) 497 498 !------------------------ 499 ! I Initialization 500 ! I_g Compute global surface pressure 489 ! I_f Compute global surface pressure 501 490 !------------------------ 502 491 total_surface = sum(cell_area) … … 508 497 !------------------------ 509 498 ! I Initialization 510 ! I_ hRead the "startpem.nc"499 ! I_g Read the "startpem.nc" 511 500 !------------------------ 512 501 write(*,*) '> Reading "startpem.nc"' … … 594 583 !------------------------ 595 584 ! I Initialization 596 ! I_ iCompute orbit criterion585 ! I_h Compute orbit criterion 597 586 !------------------------ 598 587 n_myear_leg = Max_iter_pem -
trunk/LMDZ.COMMON/libf/evolution/stopping_crit_mod.F90
r3967 r3977 243 243 type(stopFlags), intent(inout) :: stopCrit ! Stopping criterion 244 244 real, intent(out) :: S_atm_2_h2o, S_h2o_2_atm, S_atm_2_h2oice, S_h2oice_2_atm ! Variables to conserve H2O 245 246 245 ! Locals 247 246 ! ------ 248 247 integer :: i, islope ! Loop 249 250 !======================================================================= 251 if (stopCrit%stop_code() > 0) return 248 !======================================================================= 249 ! Checks to escape the subroutine 250 if (ngrid == 1 .or. stopCrit%stop_code() > 0) then 251 S_atm_2_h2o = 1. 252 S_h2o_2_atm = S_atm_2_h2o 253 S_atm_2_h2oice = 1. 254 S_h2oice_2_atm = S_atm_2_h2oice 255 return 256 endif 252 257 253 258 ! We compute the amount of water going out from the atmosphere (S_atm_2_h2o) and going into the atmophere (S_h2o_2_atm) … … 280 285 ! Since relative atmospheric water is kept constant, we need to equate condensing reservoirs to the sublimating ones. 281 286 ! It is not possible if one of them is missing. 282 if ( abs(S_atm_2_h2oice) < 1.e-10 .or. abs(S_h2oice_2_atm) < 1.e-10) then287 if ((abs(S_atm_2_h2oice) < 1.e-10 .or. abs(S_h2oice_2_atm) < 1.e-10)) then 283 288 write(*,*) "Reason of stopping: there is no sublimating or condensing h2o ice!" 284 289 write(*,*) "This can be due to the absence of h2o ice in the PCM run." -
trunk/LMDZ.COMMON/libf/evolution/surf_temp.F90
r3933 r3977 25 25 real, dimension(ngrid) :: tmp 26 26 27 ! Check to escape the subroutine 28 if (ngrid == 1) return 29 27 30 write(*,*) "> Updating surface temperature where ice disappeared" 28 29 31 ! Convert from reduced grid to lon-lat grid 30 32 #ifndef CPP_1D … … 35 37 call gr_fi_dyn(1,ngrid,iim_input + 1,jjm_input + 1,merge(1.,0.,co2ice_disappeared(:,islope)),co2ice_disappeared_ll(:,:,islope)) 36 38 enddo 37 #else38 tsurf_ll(1,1,:) = tsurf_avg(1,:)39 co2ice_ll(1,1,:) = co2_ice(1,:)40 mask_co2ice_ini(1,1,:) = merge(1.,0.,is_co2ice_ini(1,:))41 co2ice_disappeared_ll(1,1,:) = merge(1.,0.,co2ice_disappeared(1,:))42 39 #endif 43 40 … … 94 91 where (tmp > 0.5) co2ice_disappeared(:,islope) = .true. 95 92 enddo 96 #else97 tsurf_avg(1,:) = tsurf_ll(1,1,:)98 where(co2ice_disappeared_ll(1,1,:) > 0.5) co2ice_disappeared(1,:) = .true.99 93 #endif 100 94 -
trunk/LMDZ.MARS/deftank/file_def_physics_mars.xml
r3611 r3977 6 6 <!-- Definition of output files --> 7 7 <file_definition> 8 <!-- FILE 1 : Instantaneous outputs; Here output_freq inphysics time steps -->8 <!-- FILE 1: Instantaneous outputs; output_freq is every physics time steps --> 9 9 <file id="histins" 10 10 name="Xhistins" … … 51 51 </file> 52 52 53 <!-- FILE 2 :diurnal averages outputs; output_freq is every day -->54 <file id="diurnalave _"55 name="Xdiurnalave _"53 <!-- FILE 2: diurnal averages outputs; output_freq is every day --> 54 <file id="diurnalave" 55 name="Xdiurnalave" 56 56 output_freq="1d" 57 57 time_units="days" … … 81 81 </file> 82 82 83 <!-- FILE 3 :diurnal averages outputs for PEM without sub-slope; output_freq is every day-->84 <file id=" diurnalave"85 name="X diurnalave"83 <!-- FILE 3: DAILY outputs for the PEM WITHOUT slope --> 84 <file id="outdaily4pem" 85 name="Xoutdaily4pem" 86 86 output_freq="1d" 87 87 type="one_file" … … 89 89 enabled=".true."> 90 90 91 <!-- VARS 0D --> 92 <field_group operation="average" 93 freq_op="1ts"> 94 <field field_ref="Ls" /> 95 </field_group> 96 97 <field_group operation="average" 98 freq_op="1ts"> 99 <field field_ref="area" operation="once" /> 100 <field field_ref="ps" /> 101 <field field_ref="tsurf" /> 102 <field field_ref="waterdensity_surface" /> 91 <!-- Daily average --> 92 <field_group operation="average" 93 freq_op="1ts"> 94 <field field_ref="ps" /> 103 95 <field field_ref="h2o_layer1" /> 104 96 <field field_ref="co2_layer1" /> 105 <field field_ref="fluxsurf_dn_sw" name="ISR" /> 106 <field field_ref="fluxtop_dn_sw" name="insolation" /> 107 </field_group> 108 97 <field field_ref="soiltemp" /> 98 <field field_ref="waterdensity_soil" /> 99 </field_group> 100 </file> 101 102 <!-- FILE 4: YEARLY outputs for the PEM WITHOUT sub-slope --> 103 <file id="outyearly4pem" 104 name="Xoutyearly4pem" 105 output_freq="1y" 106 type="one_file" 107 time_units="days" 108 enabled=".true."> 109 110 <!-- Yearly average --> 111 <field_group operation="average" 112 freq_op="1ts"> 113 <field field_ref="ps" /> 114 <field field_ref="tsurf" /> 115 <field field_ref="soiltemp" /> 116 <field field_ref="waterdensity_surface" /> 117 </field_group> 118 119 <!-- Yearly minimum --> 109 120 <field_group operation="minimum" 110 121 freq_op="1ts"> … … 114 125 <field field_ref="perennial_co2ice" /> 115 126 </field_group> 116 117 <!-- VARS soil --> 118 <field_group operation="average" 119 freq_op="1ts"> 120 <field field_ref="soiltemp" /> 121 <field field_ref="waterdensity_soil" /> 122 </field_group> 123 </file> 124 125 <!-- FILE 4 :diurnal averages outputs for PEM with sub-slopes; output_freq is every day --> 126 <file id="diurnalave_s" 127 name="Xdiurnalave" 127 </file> 128 129 <!-- FILE 5: DAILY outputs for the PEM WITH sub-slopes --> 130 <file id="outdaily4pem_s" 131 name="Xoutdaily4pem" 128 132 output_freq="1d" 129 133 type="one_file" … … 131 135 enabled=".false."> 132 136 133 <!-- VARS 0D --> 134 <field_group operation="average" 135 freq_op="1ts"> 136 <field field_ref="Ls" /> 137 </field_group> 138 139 <field_group operation="average" 140 freq_op="1ts"> 141 <field field_ref="area" operation="once" /> 142 <field field_ref="ps" /> 137 <!-- Daily average --> 138 <field_group operation="average" 139 freq_op="1ts"> 140 <field field_ref="ps" name="ps_day_mean" /> 141 <field field_ref="h2o_layer1" /> 142 <field field_ref="co2_layer1" /> 143 <field field_ref="soiltemp_slope01" /> 144 <field field_ref="soiltemp_slope02" /> 145 <field field_ref="soiltemp_slope03" /> 146 <field field_ref="soiltemp_slope04" /> 147 <field field_ref="soiltemp_slope05" /> 148 <field field_ref="soiltemp_slope06" /> 149 <field field_ref="soiltemp_slope07" /> 150 <field field_ref="waterdensity_soil_slope01" /> 151 <field field_ref="waterdensity_soil_slope02" /> 152 <field field_ref="waterdensity_soil_slope03" /> 153 <field field_ref="waterdensity_soil_slope04" /> 154 <field field_ref="waterdensity_soil_slope05" /> 155 <field field_ref="waterdensity_soil_slope06" /> 156 <field field_ref="waterdensity_soil_slope07" /> 157 </field_group> 158 </file> 159 160 <!-- FILE 6: YEARLY outputs for the PEM WITH sub-slope --> 161 <file id="outyearly4pem_s" 162 name="Xoutyearly4pem" 163 output_freq="1y" 164 type="one_file" 165 time_units="days" 166 enabled=".false."> 167 168 <!-- Yearly average --> 169 <field_group operation="average" 170 freq_op="1ts"> 171 <field field_ref="ps" name="ps_year_mean" /> 143 172 <field field_ref="tsurf_slope01" /> 144 173 <field field_ref="tsurf_slope02" /> … … 148 177 <field field_ref="tsurf_slope06" /> 149 178 <field field_ref="tsurf_slope07" /> 179 <field field_ref="soiltemp_slope01" /> 180 <field field_ref="soiltemp_slope02" /> 181 <field field_ref="soiltemp_slope03" /> 182 <field field_ref="soiltemp_slope04" /> 183 <field field_ref="soiltemp_slope05" /> 184 <field field_ref="soiltemp_slope06" /> 185 <field field_ref="soiltemp_slope07" /> 150 186 <field field_ref="waterdensity_surface_slope01" /> 151 187 <field field_ref="waterdensity_surface_slope02" /> … … 155 191 <field field_ref="waterdensity_surface_slope06" /> 156 192 <field field_ref="waterdensity_surface_slope07" /> 157 <field field_ref="h2o_layer1" /> 158 <field field_ref="co2_layer1" /> 159 <field field_ref="fluxsurf_dn_sw" name="ISR" /> 160 <field field_ref="fluxtop_dn_sw" name="insolation" /> 161 </field_group> 162 193 </field_group> 194 195 <!-- Yearly minimum --> 163 196 <field_group operation="minimum" 164 197 freq_op="1ts"> … … 193 226 <field field_ref="perennial_co2ice_slope07" /> 194 227 </field_group> 195 196 <!-- VARS soil -->197 <field_group operation="average"198 freq_op="1ts">199 <field field_ref="soiltemp_slope01" />200 <field field_ref="soiltemp_slope02" />201 <field field_ref="soiltemp_slope03" />202 <field field_ref="soiltemp_slope04" />203 <field field_ref="soiltemp_slope05" />204 <field field_ref="soiltemp_slope06" />205 <field field_ref="soiltemp_slope07" />206 <field field_ref="waterdensity_soil_slope01" />207 <field field_ref="waterdensity_soil_slope02" />208 <field field_ref="waterdensity_soil_slope03" />209 <field field_ref="waterdensity_soil_slope04" />210 <field field_ref="waterdensity_soil_slope05" />211 <field field_ref="waterdensity_soil_slope06" />212 <field field_ref="waterdensity_soil_slope07" />213 </field_group>214 228 </file> 215 229
Note: See TracChangeset
for help on using the changeset viewer.
