source: trunk/LMDZ.COMMON/libf/evolution/changelog.txt @ 3368

Last change on this file since 3368 was 3368, checked in by jbclement, 6 months ago

PEM:
Correction related to r3367.
JBC

File size: 22.3 KB
Line 
1=============== Log messages of changesets concerning the Planetary Evolution Model (PEM) ===============
2=============== Since 01/07/2023
3
4
5== 02/07/2023 == RV
6Small fix to adapt pem to the r2981 write_profile modification by evos.
7
8== 11/07/2023 == LL
9Update CO2 glacier flow law after discussions with I.Smith. The model used before from Nye et al. was false as it overestimates CO2 ice thickness required to start the flow.
10The algorithm now used an easier approach with outputs from Smith et al., JGR Planets 2022. See the full description in the note I'll send by mail.
11
12== 17/07/2023 == LL
13*Implementation of the H2O glacier flow laws
14*The algorithm for glacier flow is now more generic and not specific for co2 ice
15*Principle: if ice thickness > ice mass, computed from models (cf note attached in the wiki), then the excess of ice is transfered
16
17== 18/07/2023 == LL
18    - Fix some bug in water conservations (transfer from watercap to waterreservoir was wrong)
19    - Add the H2O glaciers in the main program.
20    - Add the distinction between co2 frost (qsurf) and perenial co2 ice. Will be developed in the Mars PCM in a future commit
21    - Thickness thresolhd to pass from frost to glaciers is now not harcoded but a constant fixed in the mars_pem_constants
22
23== 20/07/2023 == LL
24    - Fix a bug in conf_pem ("Flux_geo" was expected in the .def while it should be 'fluxgeo', corrected)
25    - Fix a bug in glaciers modules (the length for 'name_ice' was too large)
26    - Fix a bug when writing tsoil in the PEM (ngrid x nsoil_PEM x nslope was given, while it was expecting a ngrid x nsoil_GCM x nslope)
27
28== 28/07/2023 == LL
29    - Following -r 2963, adapt the PEM so that the density of water wapor is correctly computed
30    - I've also modified the way Tsoil is initialized, but it might be changed in the future
31
32== 31/07/2023 == LL
33Following last commit, r (=R/mugaz) wasn't initialize apparently. It is not fixed. Note that R is hard coded
34
35== 01/08/2023 == JBC
36Rework and correction of computation of the maximum number of iterations for PEM according to orbital parameters.
37Complete rewriting (much simpler) of script "run_pem1d_1" in deftank/pem/ to launch chained simulations of 1D PCM/PEM. To be adapted to 3D in the future.
38Addition of a bash script "modify_startfi.sh" to modify orbital parameters in "startfi.nc". It is needed to initialize the PCM/PEM simulation with right orbital parameters according to the year in Laskar data.
39
40== 09/08/2023 == JBC
41Improvements/addition of scripts in deftank/pem to run the PEM 1D model according to Laskar orbital parameters.
42
43== 14/08/2023 == JBC
44Big cleaning of main program pem.F90 (indentation, declarations, comments, simplification of conditions/loops, etc).
45
46== 24/08/2023 == LL
47    - Following -r3028, added the declaration of daysec and dtphys that has been removed during the cleaning
48    - Add the corrective factor /cos(slope) when compute H2O ice tendencies to ensure mass conservation
49
50== 24/08/2023 == LL
51Add the water vapor exchanges between the subsurface ice and the atmosphere in the mass balance of H20 over the planet.
52
53== 24/08/2023 == LL
54Fix bug with albedo (wrong albedo for surface where co2 ice is) and add the porosity in the computation commited previously (missing)
55
56== 8/09/2023 == JBC
57* New version of scripts (launch_pem.sh and exeGCM.sh) to launch the chained simulation of GCM and PEM runs. It should be simpler and clearer for users;
58* Update of README accordingly;
59* ob_ex_lsp.asc is now in Earth years like original Laskar's data + rename obl_ecc_lsp.asc;
60* Some improvements for the script modify_startfi_orbit.sh;
61* Some changes in run_PEM.def and xml files.
62
63== 11/09/2023 == JBC
64* New management of time in PEM. While definitions in "run.def"/"launching script" and Laskar's data are in Earth years, the PEM works in Martian years. It follows several changes and the new variable 'convert_years' to make the conversion;
65* New parameter for the years to be simulated. The user does not ask anymore for a number of PEM iterations to do but for a number of Earth years to simulate. The GCM years are now counted! To do so, a temporary file "tmp_PEMyears.txt" gives few basic information between the runs;
66* New values for the maximal admissible change of orbital parameters. They are now coherent and allows the PEM to run for ~1000 Martian years;
67* Laskar's data interpolation has been cleaned further;
68* Some cleaning and renaming of PEM subroutines in the course of the previous modifications.
69
70== 13/09/2023 == JBC
71The date and time are redefined at the end of PEM to write the file "restarfi_evol.nc". Like so, the next GCM runs can restart at the date and time given at the beginning of the simulation since the PEM is only progressing by step of one Martian year.
72
73== 21/09/2023 == JBC
74Improvements of scripts to launch the chained simulations of GCM and PEM runs.
75Correction of a case where maximum admissible change of orbital parameters could not be found, in particular for Lsp because of modulo + some improvements.
76
77== 26/09/2023 == JBC
78Minor changes concerning the form of the code in the PEM.
79
80== 28/09/2023 == JBC
81Addition of a file "changelog.txt" in LMDZ.COMMON/libf/evolution/ specific to the PEM rather than using the one for Mars. Completed with changesets since 01/07/2023.
82
83== 02/10/2023 == JBC
84Initialization of the PEM in 1D through the subroutine "init_testphys1d_mod.F90" + Some adaptations of the Mars PCM in 1D + Update of "launch_pem.sh" in deftank.
85
86== 03/10/2023 == JBC
87Following the commits r3066 and r3067, the PEM initialization in 1D has been adapted.
88
89== 05/10/2023 == JBC
90Correction of a bug: the variable 'g' was not correctly initialized in 1D. A little of code cleaning.
91
92== 06/10/2023 == JBC
93Big cleaning/improvements of the PEM:
94    - Conversion of "abort_pem.F" and "soil_settings_PEM.F" into Fortran 90;
95    - Transformation of every PEM subroutines into module;
96    - Rewriting of many subroutines with modern Fortran syntax;
97    - Correction of a bug in "pem.F90" when calling 'recomp_tend_co2_slope'. The arguments were given in disorder and emissivity was missing;
98    - Update of "launch_pem.sh" in deftank.
99
100== 11/10/2023 == JBC
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    - 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.
110
111== 18/10/2023 == JBC
112The optional file to define the wanted outputs in "diagpem.nc" is now "diagpem.def" (instead of "diagfi.def") + Some updates in the files of deftank.
113
114== 23/10/2023 == JBC
115The management of files during the chained simulation of PCM/PEM runs has been simplified:
116    - "tmp_PEMyears.txt" and "info_run_PEM.txt" have been merged into one file called "info_PEM.txt";
117    - "reshape_XIOS_output.F90" now creates directly the "data_PCM_Y*.nc" files needed by the PEM;
118    - where it is relevant, 'GCM' has been replaced by 'PCM' in the files naming;
119    - the files in deftank have been updated consequently.
120Following r3095, 'iniorbit' is now a subroutine of "planete_h.F90".
121Correction of a bug from r3088: "diagfi.nc" was not changed into "diagpem.nc" in the commited version of "writediagpem.F90"!
122
123== 26/10/2023 == JBC
124    - Correction of a bug when running with ifort, XIOS and no sub-slopes. If compiled with ifort, the 'Reshape' program cashed because of sub-slopes variables were written in the XIOS output but not filled. A new file definition without sub-slopes can be chosen in the xml file to avoid this issue.
125    - Addition in the 'Reshape' program of a check to remove the output files if they exist to prevent a crash.
126
127== 27/10/2023 == JBC
128Addition of the possibility to ask for a number of Mars years to be simulated in total (previously it was only in Earth years).
129
130== 03/11/2023 == JBC
131Following r3113, addition of 'nqsoil' and 'qsoil' in the arguments of the subroutines 'phyetat0' and 'physdem1' to be able to compile.
132
133== 10/11/2023 == JBC
134Correction of the reading of the PCM data (it did not work if no slope was used) + some minor related cleanings.
135
136== 11/11/2023 == LL
137Adapting the PEM soil grid to the one of the PCM
138Minor corrections when reading/initializing soil temperature, subsurface water ice
139
140== 20/11/2023 == JBC
141The perennial co2 ice is now taken into account with co2 frost (qsurf) to compute the tendency and to make the update + Rework of how co2 frost is converted to perennial co2 ice at the end of the PEM run + Correction of the value of 'threshold_co2_frost2perennial' to correspond to 10 m + Perennial co2 ice is now handled outside 'paleoclimate' in "phyetat0_mod.F90" of the Mars PCM + Some cleanings.
142
143/!\ Commit for the PEM management of co2 ice before a rework of ice management in the PEM!
144
145== 22/11/2023 == JBC
146Update of files in the deftank: addition of variables in the xml definition files, inclusion of "callphys.def" into "run_PEM.def" and minor typo in "launch_pem.sh".
147
148== 29/11/2023 == JBC
149'Watercap' has been removed from the water ice evolution since 'water_reservoir' does already the job + Some cleanings to simplify the code.
150
151/!\ Commit for the PEM management of h2o ice before a rework of ice management in the PEM!
152
153== 01/12/2023 == JBC
154- Addition of a script in LMDZ.MARS/deftank/pem/ to launch a chained simulation of 1D PCM runs which follow, year by year, the orbital parameters (obliquity, eccentricity, Ls perihelion) given in a specified file.
155- Small changes to other files of the deftank directory (check and cosmetic).
156
157== 06/12/2023 == JBC
158- Simplification of the algorithm managing the stopping criteria;
159- Complete rework of the ice management in the PEM (H2O & CO2);
160      > Subroutines to evolve the H2O and CO2 ice are now in the same module "evol_ice_mod.F90".
161      > Tendencies are computed from the variation of "ice + frost" between the 2 PCM runs.
162      > Evolving ice in the PEM is now called 'h2o_ice' or 'co2_ice' (not anymore in 'qsurf' and free of 'water_reservoir').
163      > Default value 'ini_h2o_bigreservoir' (= 10 m) initializes the H2O ice of the first PEM run where there is 'watercap'. For the next PEM runs, initialization is done with the value kept in "startpem.nc". CO2 ice is taken from 'perennial_co2ice' of the PCM (paleoclimate flag must be true).
164      > Simplification of the condition to compute the surface ice cover needed for the stopping criteria.
165      > Frost ('qsurf') is not evolved by the PEM and given back to the PCM.
166      > New default threshold value 'inf_h2oice_threshold' (= 2 m) to decide at the end of the PEM run if the H2O ice should be 'watercap' or not for the next PCM runs. If H2O ice cannot be 'watercap', then the remaining H2O ice is transferred to the frost ('qsurf').
167- Renaming of variables/subroutines for clarity;
168- Some cleanings throughout the code;
169- Small updates in files of the deftank.
170
171== 08/12/2023 == JBC
172- The PEM deftank folder is now in LMDZ.COMMON/libf/evolution/ (not anymore in the Mars PCM deftank).
173- Small corrections related to r3149.
174
175== 14/12/2023 == JBC
176- A number of corrections related to r3149 for CO2 ice management:
177      > 'co2_ice' was not transferred to 'perennial_co2ice' at the end of the PEM run;
178      > In the Mars PCM, 'perennial_co2ice' is now correctly handled regarding the frost in case of CO2 sublimation/condensation.
179- Addition of (CO2 and H2O) ice metamorphism: if the frost is above a given value, then the excess frost is transferred to the perennial ice.
180- Thresholds value for ice management can now be set in the "run_PEM.def".
181
182== 19/12/2023 == JBC
183PEM:
184- Addition of flags defined in the "run_PEM.def" to decide to do or not CO2 & H2O ice metamorphism: 'metam_co2ice' and 'metam_h2oice' (default is false).
185- The variations of infinite reservoirs ('watercap') during the PCM years are now taken into account to update H2O ice at the PEM initialization.
186- 'ini_h2o_bigreservoir' is renamed into 'ini_huge_h2oice'.
187- Some cleanings, in particular for the main program "pem.F90".
188
189== 04/01/2024 == LL
190Fixing a small bug: the subroutine compute_icetable was always called, even if tthe option 'icetable_equilibrium' was set to false in the run_PEM.def. It is now fixed by adding a flag before the call.
191
192== 05/01/2024 == LL
193Add the possibily to output the soil fields during a PEM run in a dedicated diagsoilpem
194
195== 08/01/2024 == LL
196Fixing bug when rewritting the startfi.nc for the PCM: fluxgeo, read in the run_PEM.def,  was not written in the startfi.
197
198== 09/01/2024 == JBC
199- Correction of script "launch_orb_1Dchained.sh" which read orbital parameters missing one interval of years in two.
200- Addition of the Martian date in "info_PEM.txt" for post-processing.
201
202== 17/01/2024 == LL
203Cleaning of the several subroutine regarding soil temperatures: they are now
204gathered in an unique Tsoil module.
205(cosmetic commit)
206
207== 25/01/2024 == JBC
208- Addition of a script "inipem_orbit.sh" in the deftank to modify the orbital parameters of a file "startfi.nc" according to the date set in the file "run_PEM.def" and data found in "obl_ecc_lsp.asc";
209- Flow of glaciers is now computed only when there are slopes;
210- Reversion to the name "diagpem.nc" for the PEM outputs (as decided) which was modified in r3171;
211- Some small cleanings.
212
213== 25/01/2024 == JBC
214Update of "launch_pem.sh" related to r3171 to move the "diagsoilpem.nc" in the intended output folder.
215
216== 29/01/2024 == LL
217Fixing bug when recomputing Tsoil for the startfi. It is now done with: Tsoil averaged + Delta T where delta T is tthe difference between the instantaneous soil temperature and the yearly averaged soil temperature in the original startfi.
218
219== 30/01/2024 == LL
220Fixing bug in writediagpem: soil layers written in the diagpem where those of the PCM and not the PEM.
221
222== 02/02/2024 == JBC
223Small correction following r3189 in the case where "soilpem = .false.".
224
225== 06/02/2024 == LL
226Update in the dependance of soil properties with the pressure: the program now u
227sed a combination of work by Presley & Christensen 1997 & Piqueux & Christensen
2282009. In pratice, values of the TI are bounded between 50 and 360 USI.
229The conductivity of the Breccia layer does not change anymore with the pressure,as it should be neglectable.
230Some cleaning in the routine update_soilproperties
231
232== 08/02/2024 == JBC
233Cleanings of unused variables/arguments and bad type conversions.
234
235== 09/02/2024 == JBC
236- Addition in the deftank of a bash script "modify_startfi_var.sh" to modify the value of a variable in a "startfi.nc".
237- Small corrections due to r3206.
238
239== 12/02/2024 == JBC
240- It is now possible to set the number of initial PCM calls independently of the number of "inter-PEM" PCM calls. It is useful to get a stable situation for the start of the simulation.
241- Correction of a bug: 'reshape_XIOS_output' treated the first two PCM runs instead of the last two. The numbering has been adapted in "launch_pem.sh" to get it right.
242- PEM outputs ("diagpem.nc" and "diagsoil_pem.nc") has been improved: 'Time' now evolves according to 'dt_pem' (usually year by year) and 'ecritpem' is a full variable of "time_evol_mod.F90".
243
244== 13/02/2024 == JBC
245Small syntax correction of the if condition in "launch_pem.sh" following r3214.
246
247== 07/03/2024 == JBC
248Adaptation of threshold values for ice management (in particular 'inf_h2oice_threshold') to more realistic values.
249
250== 13/03/2024 == LL
251Correction of small mistake when computing the total mass of CO2/H2O stored in the soil; the wrong layer index was used
252
253== 28/03/2024 == JBC
254Introduction of the module aiming to manage the layered deposits through a linked list data structure. It contains:
255    - the object 'stratum' which holds several properties for one layer as well as pointers to the lower/upper 'stratum';
256    - the object 'layering' which brings the linked 'stratum' objects together as a comprehensive structure;
257    - properties for CO2/H2O ice, regolith and dust;
258    - several subroutines to manipulate the 'layering' and 'stratum' (initilize, finalize, display, modify, etc);
259    - subroutines of the algorithm to make the layering evolve according to the input tendencies (new layer, change of content in a layer, creation of dust lag layer, etc).
260
261== 29/03/2024 == JBC
262- Small correction to make the 3D PEM be able to compile.
263- Improvement of "launch_pem.sh": a file "kill_launch_pem.sh" is now automatically created which allows the user to kill the process of the launching script in case.
264
265== 08/04/2024 == JBC
266Correction of "launch_pem.sh" in the deftank: the number of years to be simulated was not respected because of extra PCM runs at the end of the simulation due to the order of PCM/PEM runs inside the loop.
267
268== 08/04/2024 == JBC
269Integration of the module "layering_mod.F90" with the rest of the PEM:
270    - The linked list data structure representative of layered deposits is converted into an array which can be outputed in the "restartpem.nc" files. This array has dimensions (ngrid,nslope,nb_str_max,6) where 'nb_str_max' is the maximum number of 'stratum' through the layerings  and '6' is the number of properties of 'stratum';
271    - this structure can also be read from "startpem.nc" files to initialize PEM runs;
272    - The layering algorithm is now used in the main PEM loop to make the layerings evolve.
273
274== 10/04/2024 == JBC
275Addition of a Python script "output_layering.py" in the deftank which allows to output layering data nicely from the "startpem.nc" files.
276
277== 15/04/2024 == JBC
278Update of "output_layering.py" in the deftank.
279
280== 19/04/2024 == JBC
281Few small corrections to make the PEM work in 3D, in particular concerning the initialization of the planet type and the evolution of ice with slopes.
282
283== 23/04/2024 == JBC
284Small correction about the dimension of an array.
285
286== 25/04/2024 == JBC
287The "start" and "startfi" file names are renamed to match those from the Mars PCM. This is necessary to initialize correctly the 3D PEM with "phys_state_var_init_mod.F90".
288
289== 26/04/2024 == JBC
290- Small corrections to make the PEM work in 3D.
291- Addition of the flag "layering_algo" (Default = .false.) defined in the "run_PEM.def" to choose to use the layering algorithm.
292
293== 30/04/2024 == JBC
294Small correction of a bug in the reading of "run_PEM.def" + some cleanings.
295
296== 02/05/2024 == JBC
297Correction in the layering algorithm in case of a stratum which is disappearing + few cleanings.
298
299== 13/05/2024 == LL
300Correction of a bug when setting the albedo / emissivity: it should be the PCM
301which sets the emissivity / albedo of the CO2 ice (because of CO2 snowfall) and
302not the PEM. I thus removed the lines in the PEM accordingly
303
304== 15/05/2024 == JBC
305- Update of some default parameters;
306- Correction of a bug when the ice table was too low for the PEM subsurface discretization;
307- Correction of the computation for the change of sublimating ice necessary to the stopping criteria (the mistake was introduced in r3149) + simplification of the algorithm + renaming of variables with more explicit names;
308- Cleaning of "soil_thermalproperties_mod.F90".
309
310== 15/05/2024 == LL
311- Remove a wrong line which modified the  initial surface sublimating during
312the main time loop
313- Cleaning the previous cleaning commit.
314
315== 16/05/2024 == JBC
316Improvement of a flag-like variable (more robust as a logical) to know where co2 ice was at the beginning.
317
318== 16/05/2024 == JBC
319Update of the layering algorithm + corrections of wrong lines commited in r3330.
320
321== 22/05/2024 == JBC
322Correction of the way sublimating ice is identified at the beginning of the PEM + some updates for the default variables and the display of information.
323
324== 23/05/2024 == JBC
325Making "writediagsoilpem.F90" work in 3D with the correct PEM soil depth dimension.
326
327== 27/05/2024 == LL
328Fixing bug in update_soilthermal properties: in case of an ice table, the dry regolith was wrongly initialized.
329
330== 31/05/2024 == JBC
331New script called "launchPEM.sh" to launch a chained simulation of PCM/PEM runs:
332  - It is far more efficient since it submits a cycle of PCM/PEM dependent jobs waiting in the SLURM queue. Plus, it does not involve a endless running master script;
333  - It is more robust and user-friendly since it holds lots of warning/error messages handling different situations. It can take arguments to adapt to the needs of the user. It also creates automotically a script called "kill_launchPEM.sh" to cancel all the current dependent jobs.
334There are 3 other files to make it work:
335  - "lib_launchPEM.sh" which is the library containing the bash functions used by the script;
336  - "jobPCM.slurm" which is the SLURM job script for the PCM used as a template by the script;
337  - "jobPEM.slurm" which is the SLURM job script for the PEM used as a template by the script.
338More info in the "README" of the deftank.
339
340== 31/05/2024 == JBC
341- Updates for several scripts in the deftank.
342- Addition of the bash script "clean.sh" to clean a folder after a PEM simulation.
343
344== 03/06/2024 == JBC
345Addition of a script to execute multiple scripts in subdirectories (useful to launch multiple jobs at once for ex.) + Updates for several scripts in the deftank.
346
347== 03/06/2024 == JBC
348The launching script can now operate a relaunch from any already computed PCM/PEM run. The starting point is asked to the user interactively on the terminal.
349Some features might not work very well yet since not every stituation has not been tested.
350
351== 10/06/2024 == JBC
352- The PEM can now stop itself cleanly before the SLURM time limit for the job is reached and it continues the simulation with a new cycle.
353- Update of "jobPEM.slurm" in the deftank to guarantee enough memory space to run the job.
354- Few minor cleanings.
355
356== 10/06/2024 == JBC
357Correction of an error in "lib_launchPEM.sh" due to a miscalculated condition + Improvement of the relaunch which now cleans the unnecessary files.
358
359== 11/06/2024 == LL
360Fixing bug in the initial computation of ice tendencies (a negative tendancies was computed when a glacier was disapearing at the end of the second year of the PCM).
361Fixing a bug in the update of the tendencies of CO2 to ensure mass conservation
362
363== 11/06/2024 == JBC
364Removal of useless condition and variable + some updates.
365
366== 11/06/2024 == JBC
367Correction related to r3367.
Note: See TracBrowser for help on using the repository browser.