source: trunk/LMDZ.GENERIC/README~ @ 200

Last change on this file since 200 was 135, checked in by aslmd, 14 years ago

CHANGEMENT ARBORESCENCE ETAPE 2 -- NON COMPLET

File size: 19.9 KB
Line 
1== 17/09/08 ==
2>>> Build a version with new soil but old radiative transfer,
3    but keeping possibility of switching back to new radiative transfer),
4    which incorporates changes & improvements currently included in the
5    'reference version' GCM (see /u/emlmd/LMDZ.MARS.mixdyn)
6
7>>> start by modifying makegcm as in /u/emlmd/LMDZ.MARS.mixdyn, so that it runs
8    without environment variables and set LIBOGCM to /tmp15/emlmd/libo
9
10>>> directory contents of 'aeronomars', 'grid' and 'filtrez' are simillar
11    to those in /u/emlmd/LMDZ.MARS.mixdyn
12
13>>> in bibio , only file mxva.F needed be upgraded
14
15>>> get phymars and dyn3d contents from /u/emlmd/LMDZ.MARS.mixdyn
16    (and remove all *old files)
17
18>>> check differences between dyn3d and /u/emlmd/LMDZ.MARS.170908/libf/dyn3d
19    and upgrade when necessary:
20    - removed 'netcdf.inc' file (has nothing to do there!)
21    - comgeom.h and comgeom.h : made fortran90 compliant
22    - control.h : made fortran90 compliant
23    - dynredem.F : more read/write controls + comments in english
24    - ini_archive.F : new soil/thermal inertia changes
25    - integrd.F : added additional information to output when crashing
26    - lect_start_archive.F : new soil/thermal inertia changes
27    - newstart.F : new soil/thermal inertia changes + comments in english
28    - start2archive.F : new soil/thermal inertia changes
29    - vanleer.F : removed inapropriate 'external' statement
30    - write_archive.F : enable writting a subterranean field
31
32>>> check differences between phymars and /u/emlmd/LMDZ.MARS.170908/libf/phymars
33    and upgrade when necessary:
34    New soil stuff:
35    - added comsoil.h
36    - iniwrite.F : new soil changes
37    - added iniwritesoil.F90 and writediagsoil.F90 for subterranean fields
38    - added interp_line.F (for subterranean grid interpolation)
39    - adapted phyetat0.F for subterranean temperature & inertia
40    - adapted physdem1.F to include new soil stuff
41    - physiq.F : added calls to writediagsoil
42    - soil.F : new routine (fixed vertical grid + variable thermal inertia)
43    - added soil_settings.F (to read/initialize/interpolate soil properties)
44    - updated surfdat.h (since thermal inertia is now in comsoil.h)
45    - updated tabfi.F : include new soil properties
46    - updated testphys1d.F
47    - updated dimphys.h (set nsoil=18 as default)
48
49== 18/09/08 ==
50>>> add the possibility of easily switching to Tran radiative transfert
51    - updated aerdust.h.ocke97 (changed some variables name) so it can
52      replace aerdust.h (which is currently the same as aerdust.h.clan91).
53    - imported Tran's 'gfluxv.F' routine
54    - imported Trans' version of 'swr.F' routine, saved it as 'swr.F.toon'
55
56>>> Backup of 'old' Morcrette swr.F is 'swr.F.morc'
57    NB: to switch from one radiative transfer to the other, just copy
58    swr.F.morc or swr.F.toon to swr.F (and eventually 'touch swr.F' so that
59    makegcm recompiles swr.F)
60    No other dependencies (swr.F.toon uses 'gfluxv.F' and swr.F.morc uses
61    'dedd.F').
62
63>>> Changed the latter, so that users can switch from one to the other
64    - modified swr.F.toon to become swr_toon.F (and to include gfluxv.F)
65    - modified swr.F.morc to become swr_fouquart.F (and to include dedd.F)
66    - added a flag in callkeys.h, swrtype (parameter to be set/changed by
67      the user 1=Fouquart and 2=Toon)
68    - update readtesassim so that the coefficient by which opacity
69      is multiplied is set according to the 'swrtype' parameter
70
71== 25/09/08 ==
72>>> Implement the use of tracer-by-name in physics
73    - in phymars/tracer.h set 'noms' length to 20 (instead of 10)
74    - in phymars/callsedim2q.F and phymars/callsedim.F, use tracers by name
75    - in phymars/dustopacity.F, use tracers by name
76    - in phymars/vdifc.F, use tracers by name
77
78== 26/09/08 ==
79>>> Change implementation strategy (for now); don't move surface tracer around
80    i.e.: surface ice remains equivalent to qsurf(nqmx)=qsurf(i_h2o_vap)
81          and likewise for surface tendencies ...
82    - modified vdifc.F and callsedim.F back
83    - modified initracer.F (so that water names are h2o_vap & h2o_ice)
84   
85== 29/09/08 ==
86    - modified aeronomars/init_chimie_B (cosmetics)
87    - corrected aeronomars/moldiff.F internal routine tridag; changed
88      "pause" error messages to 'stop' messages
89    - modified phymars/watercloud.F to use tracers by name
90    - corrected aeronomars/molvis.F (undefined 'fac' and 'Akk' written to
91       output at first call)
92   
93== 30/09/08 ==
94    - modified aeronomars/calchim.F to use tracers by name
95    - adapted aeronomars/photochemist_B.F to use tracers by name
96    - adapted aeronomars/chemtermos.F to use tracers by name
97    - adapted aeronomars/concentrations.F to use tracers by name
98    - corrected aeronomars/conduction.F (undefined 'Akk' written to output
99      at first call)
100    - adapted aeronomars/euvheat.F to use tracers by name
101    - adapted aeronomars/moldiff.F and moldiffcoeff.F to use tracers by name
102
103== 01/10/08 ==
104    - For more compatibility with LMDZ4; mimic reading a 'traceur.def' file
105      in the dynamics via a call to a routine 'iniadvtrac.F' and saving
106      tracers names in 'advtrac.h'
107     -> created 'iniadvtrac.F', 'advtrac.h' and modified gcm.F
108    - modified 'dynetat0.F' so that tracers are loaded from 'start.nc' by name
109    - modified 'dynredem.F' so that tracers are written to 'restart.nc'
110      by name
111    - modified 'initracer.F' tu use tracers by name
112
113== 02/10/08 ==
114    - removed use of 'nqchem_min' everywhere:
115      adapted 'euvheat.F','inifis.F','physiq.F'
116      (leave 'inichim.F' for later)
117    - updated 'phyetat0' and 'physdem1.F' to read/write surface tracers by name
118    - modify things so that surface water ice index is the same as
119      atmospheric water ice (except when running without water ice; then
120      simply set i_h2o_ice=i_h2o_vap).
121      NB: the easiest is to have global storage of tracer names/indexes in
122      tracer.h
123      => changed initracer.F & tracer.h to have global igcm_something indexes
124
125== 03/10/08 ==
126    - adaptations for surface ice index, modified files:
127      phyetat0.F : if there is a dynamical tracer 'h2o_vap' then load
128                   surface tracer called 'h2o_ice' instead
129      initracer.F : in 'old' tracer name case: move qsurf(nqmx)->qsurf(nqmx-1)
130                    and set i_h2o_ice=i_h2o_vap if iceparty=.false.
131      physdem1.F : if old tracer names: move qsurf(nqmx-1)->qsurf(nqmx)
132                   if iceparty=.false., write surface tracer 'h2o_ice'
133                   (and not 'h2o_vap') to file.
134      adapted vdifc.F, callsedim.F & watercloud.F & physiq.F so that surface
135      ice is now identified as qsurf(i_h2o_ice)
136    - updated aeronomars/perosat.F (cosmetics)
137
138== 06/10/08 ==
139    - modify newstart.F and lect_start_archive.F to use tracers by name
140== 07/10/08 ==
141    - adapted inichim_newstart.F (added qsurf to arguments)
142      and inichim_readcallphys.F
143== 08/10/08 ==
144    - implement reading traceur.def in dyn3d/iniadvtrac.F
145
146== 16/10/08==
147    -small change in inifis.F (only warn if too many tracers, compared
148     to the expected number, not stop).
149     - corrected bug in initracer.F
150== 21/10/08 ==
151    - modified newstart.F to load B.Diez subsurface ice maps.
152    - corrected small bug (uninitialized variable) in interp_horiz.F
153== 22/10/08 ==
154    - updated iniwritediagsoil.F so that thermal inertia is written to
155      diagsoil.nc
156== 31/10/08 ==
157    - changed xvik.F program so it works even if we don't have atmospheric
158     temperature at hand (then it uses a 10km reference scale height) and so
159     that it does surface pressure interpolation log-wise.
160== 03/11/08 ==
161    - modified physiq to compute (and output) co2 column.
162    - added improvement by Francois in newcondens.F about computing CO2
163      partial pressure. This behavior is turned on by setting internal logical
164      flag 'improved_ztcond' to '.true.' (and running with a co2 tracer)
165    - updated 'start2archive' to work with 'new' gcm output (soil, tracers ...)
166== 04/11/08 ==
167    - upgraded xvik program to look for temperature in 7th layer variable if
168     there is no global atmospheric temperature field at hand.
169== 05/11/08 ==
170    - more modifs to newcondens.F: added another internal flag 'bound_qco2' to
171     enforce (if set to .true.) that co2 mass mixing ratio remains bounded.
172== 07/11/08 ==
173    - corrected 'writediagfi' & 'writediagsoil' so that an error message is
174      issued if called with a variable name which is too long.
175== 18/12/08 ==
176    - corrected bug in dyn3d 'addfi.F', (dimensions of local array p())
177== 23/02/09 ==
178    - modified "aeronomars/param_read.F" to do strictly fortran data
179     initialization (otherwise xlf compiler complains)
180    - changed a few '1.e-30' to '1.d-30' in aeronomars/photochemist_B.F
181     so that max functions has 2 doubles as arguments (otherwise xlf
182     compiler complains)
183
184==07/04/09 ==
185    -cosmetic changes/minor improvements in the handling of tracers in:
186     aeronomars/photochemist_B.F
187     aeronomars/perosat.F
188     aeronomoars/euvheat.F
189     aeronomars/moldiffcoeff.F
190     aeronomars/moldiff.F
191     aeronomars/cocentrations.F
192     aeronomars/chemtermos.F
193     aeronomars/calchim.F
194
195--> NB: still there are differences in outputs when order of tracers is changed
196
197== 09/04/09 ==
198>>> fixed problem in 'vdifc.F' which lead to different results when moving
199    tracers around.
200
201== 10/04/09 ==
202>>> corrected small bug in diagnostic outputs of 'watercloud.F' (tendencies were
203    not added to tracer values).
204
205== 21/04/09 ==
206>>> corrected small bug in "physdem1.F" about writing water ice surface tracer
207    to file
208
209== 07/05/09 ==
210>>> very minor correction (firstcall not set to true after first call
211    if no tracers) in convadj.F
212
213== 30/06/09 ==
214>>> Implement reading *def files with IOIPSL ersatz 'getin' function
215   - import "ioipsl_errioipsl.F90","ioipsl_getincom.F90","ioipsl_stringop.F90"
216     in bibio
217   - adapted 'dyn3d/defrun_new.F' to use "getin" function
218   - adapted 'phymars/inifis.F' to use "getin" function
219
220== 01/07/09 ==
221>>> Adapted 'create_make_gcm' so that the "use" in *.F files is identified and
222    corresponding dependencies included in the makefile rules.
223
224>>> Added the 3D scattering from aerosols by JB Madeleine:
225    - minor changes in aerave.F
226    - added the calls to aeropacity.F, and aeroptproperties.F in callradite.F
227    - changed the calls to lwu.F and swr.F in lwmain.F and swmain.F, respectively
228    - added 3D scattering properties in lwu.F and swr.F
229    - added the new aeroptproperties.F, aeropacity.F and suaer.F90 routines
230        (removed dustopacity.F)
231    - updated aeropacity.F with new tracer names
232    - changed the call to callradite.F in physiq.F, added the initialization
233        of reffrad and nueffrad (aerosol effective radius and variance)
234    - removed all the lines relative to the old "activice" option, including
235        temperature variation due to latent heat release (now in comments)
236    - renamed nsize into naersize in watercloud.F, watersat.F and newsedim.F,
237        to avoid conflicts with another "nsize" variable in the radiative transfer
238    - added the statement of nuice in watercloud.F, which is the effective variance
239        of the log-normal distribution for ice
240    - updated yomaer.h and removed aerice.h (and corresponding "includes")
241
242== 02/07/09 ==
243>>> Adapted 'aeronomars/inichim_readcallphys.F' (called by newstart)
244     to use "getin" routine.
245    + minor correction in 'inifis.F' (close 'iradia.def' file)
246>>> Minor correction in 'dyn3d/dynetat0.F' and 'phymars/phyetat0.F'; do not
247    attempt to reindex tracers if none were found.
248
249>>> in 'deftank' added examples of 'traceur.def' files (traceur.def.co2 : 1
250    co2 tracer; traceur.def.watercycle : 2 traceurs, water vapour and water ice
251    tracer.def.chemistry : all 15 species)
252
253== 06/07/09 ==
254>>> Modified 'makegcm' and makegcm_g95' so that modules files are put
255    with libraries (and not in current directory)
256   
257   
258   
259   
260== 01/08/09 ==
261>>> Old Martian radiative transfer removed completely, new correlated-k
262    scheme implemented in its place. Central function is callcorrk.F.
263    Radiative properties are no longer stored in dimradmars.h, but in the two
264    files radinc_h.F90 and radcommon_h.F90. 3D aerosol scheme
265    incorporated into callcorrk.F. dustopacity.F renamed aeropacity.F
266    and substantially simplified. For now the option to include dust
267    as an aerosol has been removed.
268
269>>> newcondense.F replaced by condense_co2cloud.F90. This is basically
270    Francois' routine from the old model, adapted to work with the new
271    generalised tracer scheme.
272
273>>> Options added in physiq.F and tabfi.F to allow for planets with
274    varying orbital parameters, radii, gravity etc. For the moment we
275    select the planet using the variable 'planettype' in
276    callphys.def. This could probably be improved in the future.
277
278>>> Many new options added to callphys.def.
279
280   
281   
282   
283   
284== 25/11/2009 ==
285>>>> List of changes and modifications
286- modified watercloud.F: added sanity check (i.e. do we have a water tracer?)
287- modified dyn3d/dynetat0.F --> removed possibility of reindexing tracers
288- modified phyetat0.F --> removed possibility of reindexing tracers
289
290-- removed using a "co2ice" array to store surface CO2 ice
291  -> adapted surfini.F & physiq.F to use qsurf(:,igcm_co2_ice)
292     instead of co2ice(:)
293  -> modified initracer.F & tracer.h to properly initialize (and store)
294     a "co2_ice" tracer.
295  -> removed 'co2ice' from vdifc.F (it was not used there anyway)
296     and from phsdem1.F
297  -> removed possibility of calling 'newcondens' from physiq.F
298  -> cleaned up newstart.F, lect_start_archive.F, start2archive.F to not use
299  "co2ice" field but qsurf(igcm_co2_ice)
300
301-- adapted 'create_make_gcm' and 'makegcm' scripts so that we don't need
302   to have and (unused) 'aeronomars' directory around.
303 
304-- shifted to reading traceur.def (dyn3d/iniadvtrac.F) in an Earth-LMDZ4-like
305   fashion:
306   first line == number of tracers
307   and then tracer name (1 per line; later we'll also add advection scheme type)
308-- NOTE BY RW: Here would be a good place to also note which tracer (if any) is
309   the 'variable gas' in the radiative transfer
310
311-- Made some changes in tabfi.F to let user change planet parameters
312   such as rotation rate, molar mass of atmosphere, ...
313   (NB: note however that we seem to lose dynamics/physics coherence ...
314    we should probably read these values from a planet.def file)
315
316-- Changed condens_co2cloud.F : added a check for presence of CO2 gas and output
317   of corresponding tendency.
318
319
320== 15/12/2009 ==
321>>> Correlated-k radiative transfer now reads spectral bands and p-T
322    matrix values from ascii files; the code checks that the number of
323    bands and matrix elements in the files match those written in
324    radinc.F90 on the first call.
325
326>>> Water vapour tracer coupled to variable gas species in radiative
327    transfer; option also given to run with fixed relative humidity
328    profiles. 'Variable gas species' option added to callphys.def.
329
330>>> Surface albedo updated to be one band everywhere.
331
332>>> suaer_corrk.F90 modified to use different ep, omeg, g variables in
333    the visible and infrared. This is necessary because the number of
334    bands is, in general, different.
335
336>>> suaer_corrk.F90 has an option to accept Francois' new CO2 ice
337    values (and convert wvl to metres!!).
338
339>>> optci.F --> optci.F90 so that water vapour continuum subroutine
340    can be included.
341
342== 08/01/10 ==
343>>> Option to change pref for hybrid coordinates added to newstart.F.
344
345
346== 15/01/2010 ==
347>>> Upgraded newstart.F: added possibility to reset refrence surface pressure
348   "preff" (and pa)
349>>> tabfi.F: added possibility of changing value of "year_day"
350>>> cosmetic change in callphys.def : separate "universal" parameters
351    and planet-specific parameters (in a separate file, e.g. earlymars.def)
352   
353== 22/01/2010 ==
354==> call this version LMDZ.GENERIC
355>>> Some cleanup & upgrades:
356-- split parameters in callphys.def into generic stuff (stays in callphys.def)
357   and another more specific file (e.g. earlymars.def).
358-- added 'output_olr' key (in callkeys.h; read in physiq.F) to trigger
359   output of fluxes in ascii file 'olr.txt'
360-- removed (non-generic) 'kastprof' and 'nearcond' keys/options in physiq.F
361  (also removed file kastprof_fn.F)
362-- had to set 'fixh2ovap  =.false. in callcorrk.F to avoid
363   "out of range subscript" pb in callcorrk.F
364   ==> this should be improved / better controlled in the future
365-- updated newsedim.F to use "molrad, visc, avogado values from comcstfi.h
366   (and not local versions of these constants)
367-- fixed buggy -O option in makegcm (and makegcm_g95);
368
369== 22/02/2010 ==
370==> call this version LMDZ.GENERIC.v0.31
371-- rain.F, manabe.F and largescale.F subroutines added to water cycle
372-- several new toggles added to earlymars.def
373
374== 28/03/2010 ==
375==> call this version LMDZ.GENERIC.v0.4
376-- many changes for this version!
377-- radiative transfer --
378   A new system was implemented that automatically reads the p, T, g,
379   Q and band values from files. The dataset required is now specified
380   in callphys.def. We still need to edit radinc_h when the corrk array
381   sizes change - think about improving this in the future.
382-- water cycle --
383   A watercommon_h mod file was created, several files were renamed
384   and moist convection and precipitation subroutines were added.
385   Still needs some testing!
386-- OLR --
387   Two new functions were added: one to produce .nc files of the OLR
388   by band, and the other to save the upgoing radiation by band in 1D
389   as a .txt file.
390-- general structure --
391   tabfi.F, newstart.F etc. cleaned up + it was checked that they pass
392   variables correctly. Several new options added to run.def for 1D,
393   in order to allow truly arbitrary planet simulations. The
394   'planettype' option has been removed as it screwed things up completely.
395-- energy conservation --
396   I found that the planckir function in the radiative transfer did not
397   always produce values that summed to sigma T^4. A new test was implemented
398   to check for this problem and the standard band widths in the IR
399   were increased.
400
401== 31/03/2010 ==
402==> call this version LMDZ.GENERIC.v0.5 (in progress...)
403-- OLR --
404   The .nc functions were implemented and tested. It was necessary to add
405   new functions 'writediagspec.F' and 'iniwrite_spec.F'.
406-- CO2 condensation --
407   In 1D we now exit automatically if CO2 is condensing on the
408   surface.
409-- G1D --
410   We can now choose at the beginning of physiq.F, using saveG1D, how
411   many times we want to save per day in 1D (rather than every single
412   time that physiq is called).
413-- water cycle --
414   I corrected a nasty bug in callcorrk involving varfixed, real*8 and
415   epsi. I corrected a simple bug in the writing of qsurf in g1d.dat.
416   rain.F has been tested and the algorithm for precipitation evaporation
417   modified to that written in the manual of Larent Li. Cloud fraction
418   variable is now included. activice and iceparty are gone, ~replaced
419   by watercond and waterrain.
420-- orbit --
421   nres and tlocked were added as basic options to callphys.def
422-- radiative transfer --
423   I added error checking for out-of-bounds temperature in
424   callcorrk.F. I added a new file calc_rayleigh.F90 to calculate
425   Rayleigh scattering using a weighted mean, as opposed to simply the
426   midpoint band values. Band discretisation is now even more
427   automated than before: the coefficients are stored in directories
428   like /earth/32x36/, and we can compile the GCM like this:
429   makegcm -d 32x24x20 -b 32x36 -p std gcm.
430   A bug was fixed involving emissivity not being properly passed from
431   newstart.e to the main part of the code.
432   Stellar spectra are now calculated automatically for any range of
433   bands from high resolution data (originally from the VPL website).
434-- vertical discretisation --
435   I corrected a bug in testphys1d that used a fixed value of
436   temperature to compute the altitude levels in the model. Now we use
437   the scale height from z2sig.def instead. Values of preff and pa are
438   no longer defined in testphys1d (they're not needed).
439-- Non-ideal gases --
440   I have replaced cpp in many places with cpp_3D in physiq. This is a
441   major change, but there are enough cases where it will be useful to
442   make it worthwhile in the universal code. I have done the same with rcp.
Note: See TracBrowser for help on using the repository browser.