source: trunk/LMDZ.MARS/README @ 241

Last change on this file since 241 was 234, checked in by aslmd, 13 years ago

LMDZ.MARS
+ MESOSCALE

  • An important change to merge physiq.F and inifis.F for GCM and mesoscale
  • This is mostly transparent to GCM users and developers (use of MESOSCALE precompiler flags)
  • Makes it easy (and mostly automatic!) for changes in GCM physics to be impacted in mesoscale physics
  • A few minor changes have followed in the GCM (slope scheme, one-point diagnostic).
  • Compilation + run is OK on both sides (GCM and mesoscale).
  • On the mesoscale side, call_meso_physiq?.inc and call_meso_inifis?.inc have been changed accordingly.

Here is the excerpt from README file:

19/07/2011 == AS

  • Finished converging meso_physiq.F and meso_inifis.F towards physiq.F and inifis.F --> see previous point 15/07/2011 --> meso_ routines no longer exist (everything is in meso_inc and transparent to GCM users) --> GCM routines include mesoscale parts within MESOSCALE precompiler commands --> MESOSCALE parts are as hidden as possible not to mess up with GCM users/developers
  • Cleaned inelegant or useless #ifdef [or] #ifndef MESOSCALE in physiq and inifis so that a minimum amount of such precompiler commands is now reached [mainly related to I/O]
  • Added the SF08 slope insolation model in the general physics parameterizations. Added a callslope keyword in inifis.F and callkeys.h --> This keyword is False by default / True if you use -DMESOSCALE
  • Removed the obsolete call to Viking Lander 1 diagnostic Replaced it with a diagnostic for opacity at the domain center [valid for GCM and mesoscale]
File size: 39.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== 21/07/09 ==
258>>> Added in "testphys1d.F" a check that the (required) 'run.def' file is
259    around (that file should contain the "INCLUDEDEF=callphys.def" instruction
260    otherwise getin() calls won't work.
261    Also added reding of 'traceur.def' (or initialisation of tracer names
262    to dummy values q01,q02, ...) in testphys1d.F
263
264== 22-24/07/09 == JBM
265>>> Removed "iceparty" everywhere (calchim.F, inichim_readcallphys.F,
266        chimie_data.h, inichim_newstart.F, photochemist_B.F, callkeys.h,
267        callradite.F, callsedim.F, aeropacity.F, inifis.F, initracer.F, physdem1.F,
268        physiq.F, watercloud.F). Water = .true. now implies the use of two
269        tracers, i.e. water vapor and water ice.
270
271>>> Removed fisice.h and stated the corresponding variables in the right
272        places (physiq.F, callsedim.F, watercloud.F, newcondens.F, calchim.F);
273        also removed unused cltop and clsurf variables in physiq.F.
274
275>>> Removed the variable's splitting, which is now obsolete, in callradite.F
276        (and its subroutines lwi.F, lwxb.F, lwxn.F, lwflux.F, lwmain.F, lwxd.F).
277        Also removed the variable's splitting in calldrag_noro.F. Finally removed
278        ndomain from dimradmars.h.
279
280>>> Removed useless tests in aeropacity.F.
281
282== 27-30/07/09 == JBM
283>>> Cleaned the WRITEDIAGFI section in physiq.F, and moved the "mtot",
284        "icetot" and "tauTES" variables from watercloud.F to physiq.F. Also
285        cleaned the albedo change due to water ice deposition.
286
287>>> Renamed rdust into rnuclei in callsedim.F, physiq.F and watercloud.F.
288
289>>> Added a logical test for (water.and..not.tracer) in inifis.F.
290
291>>> Removed "qsurf","zls" and "icount" from the list of inputs in
292        watercloud.F (these variables were not used by the subroutine).
293
294>>> Added a call to watercloud.F at firstcall, using typical dust optical
295        depth (taufirstcall), in order to correctly initialize the ice particle
296        size distribution for the radiative transfer scheme. Also created a new
297        subroutine to load the effective radius and variance of the aerosols used
298        by the radiative transfer scheme. Its name is updatereffrad.F, and it is
299        called before aeroptproperties.F in callradite.F.
300
301== 05/08/09 == JBM
302>>> TES water-ice opacity is now fully computed using the radiatively active
303        aerosol scheme. Absorption coefficient is calculated using Qext and
304        omega at the IR reference wavelength. Omega was not computed before; it
305        was only computed in the GCM channels, not at the reference wavelength.
306        Thus it has been added in suaer.F90, aerave.F, yomaer.h, callradite.F,
307        aeropacity.F and aeroptproperties.F. If "activice" is false, the
308        TES opacity is computed using the old method (fit of the Qabs as a
309        function of reff curve).
310
311== 07/08/09 == EM
312>>> Removed "iceparty" option from callphys.def
313
314>>> modified physiq.F and initracer.F so that building of array niqchem() which
315    contains the indexes of all chemistry tracers + water vapour and water
316    ice is done in initracer.F (array niqchem(:) is now a common
317    in tracer.h ).
318    Also had to adapt inichim_newstart.F to behave similarly.
319
320== 24/08/09 == EM included corrections by JBM
321>>> Added declaration of nqchem(nqmx) local array in
322    aeronomars/inichim_newstart.F
323
324>>> Encapsulated calls to writediagfi & wstats in if (ngrid.ne.1) clause
325    in phymars/aeropacity.F (otherwise it crashes in 1D).
326
327== 26/08/09 == EM
328>>> modified tracer.h, initracer.F, inichim_newstart.F and physiq.F to not use
329    an niqchem() array (added in 07/08/09 changes)
330
331>>> modified phymars/readtesassim.F90 and phymars/aeropacity.F so that
332    assimilated dust for MY24 or MY25 or MY26 may be used (with iaervar=
333    24,25 or 26); we keep iaervar=4 to also read MY24 dust for compatibility
334    with older versions of code.
335    Modified deftank/callphys.def : added comments about new iaervar values
336
337== 25/09/09 == EM
338>>> modified phymars/testphys1D.F : added incrementation of tracer values
339    after call to physiq().
340
341== 27/11/09 == EM
342>>> updated comments in makegcm (translated help to english)
343
344>> shifted to reading file traceur.def
345   (dyn3d/iniadvtrac.F) in an Earth-LMDZ4 like way:
346   first line == number of tracers
347   and then tracer name (1 per line; later we'll add advection scheme type)
348>> also updated example 'traceur.def' files in deftank accordingly
349
350== 02/12/09 == EM
351>>> upgraded testphys1d.F and profile.F to load run parameters with getin()
352    function (from run.def ; no need for a "testphys1d.def" any more)
353    added an example 'run.def.1d' file to 'deftank'
354
355==10/12/09 == EM
356>>> minor correction in testphys1d.F (was still checking if there is a
357    testphys1d.def file around ; which is not used anymore)
358
359==15/01/10 == JBM
360>>> aeropacity.F: implemented a weighting of the dust opacity profile
361  by using the dust size vertical profile defined in updatereffrad.F.
362>>> aeroptproperties.F: changed the integration scheme (Gauss-Legendre)
363  of the scattering parameters.
364>>> suaer.F90: removed the use of an ad-hoc "solsir" factor. It is now
365  directly computed from the scattering properties read in the ASCII
366  files. Consequently, the IR extinction coefficient has been divided
367  by solsir=2 in the ASCII file (called optprop_dustir_x0.5.dat instead
368  of optprop_dustir.dat to allow compatibility with the older version
369  and avoid chaos).
370>>> updatereffrad.F: changed the dust size vertical profile.
371>>> yomaer.h: the particle radius variable is now in simple precision,
372  because the new scattering property integration scheme has changed.
373>>> aeronomars/inichim_readcallphys.F (small) bug correction load value of
374    'water' before testing its value...
375
376== 18/01/10 == EM
377>> added possibility to read (in inifis.F and aeropacity.F) the value of
378   dust opacity tauvis from callphys.def file
379
380== 01/02/10 == EM
381>> added JBM updates of "callradite.F" (coments) "aeroptproperties.F" (bug fix
382   of bad array bounds) and "aeropacity.F" (encapsulate wstats calls in
383   if (callstats) )
384>> added implementation of TES Cap albedos: "albedocaps.F90" and adapted
385   "newcondens.F"  (and physiq.F, because added 'zls' argument to newcondens)
386   and surfdat.h
387>> changed default settings for dust : set a 1.3 factor in readtesassim.F90
388   when using Toon radiative transfer, use M.Wolff-T-Matrix files in suaer.F90
389 
390== 03/02/10 == EM
391>> Updated newstart.F in dyn3d, so that sub-surface thermal inertia values may
392   be different in North and South hemispheres.
393
394>> Updated "makegcm" and "makegcm_g95" scripts (cosmetic + default compilation
395   option changes)
396   
397>> Minor changes in aeronomars/init_chimie_B.F (do not use lnblnk(); F90
398   trim() intrinsic is much safer and better), and in initracer.F (better
399   control over a possible array bound underflow).
400   Also, in dyn3d/iniadvtrac.F, close input file properly,
401   and in infis.F, more verbose message to output.
402
403== 26/02/10 == EM
404>> Updated makegcm and makegcm_g95 : default usage is now to set everything
405   ("environment variables") in the script. Changed some default compilation
406   options.
407>>> removed 'float()' instructions in tabfi.F and iniwrite.F
408    use "real()" to be compliant with standards.
409>> Corrected small bug in testphys1d.F (look for file traceur.def)
410   also added initialisation of tracers
411>> Cleaned up inifis.F and initracer.F (some sanity checks were obsolete
412   and/or wrong)
413>> Improved writediagfi.F so that 1D (individual column in the GCM, or
414   fields in testphys1d) data can be written in the diagfi.nc file
415>> Minor changes/improvements in calls to writediagfi from physiq.F for dust
416
417== 08/03/10 == EM
418>> Minor update of "makegcm" and "makegcm_g95": use instruction "./makdim"
419   (instead of "makdim"; in case "." is not in user's path)
420>> put "real()" instructions instead of "float()" in dyn3d routines:
421   disvert.F , dynredem.F , fluxstoke.F , fxhyp.F , fxy.F ,
422   fxysinus.F , fyhyp.F , gcm.F , grid_atob.F , grid_noro.F , grid_noro1.F ,
423   ini_archive.F , inigeom.F , newstart.F , ran1.F , sortvarc.F ,
424   sortvarc0.F
425>> Minor update of aeropacity.F (added if (callstats) around call to wstats)
426
427== 28/04/10 == EM
428>> Put the splitting in radiative transfer back in the model (JB):
429   updated calldrag_noro.F  callradite.F  dimradmars.h  lwflux.F
430   lwi.F lwmain.F lwxb.F lwxd.F lwxn.F swmain.F
431>> Fix bug (AS) in callradite.F (wrong loop boundaries line 332)
432>> Fix bug (AS+JB) in "swr_toon.F" to enable running with more than
433   100 levels...
434>> Fix bug (JBM) in callsedim2q.F about setting pdqs_sed(:niq(iq)) to zero
435
436== 25/08/10 == EM
437>> Add a 'makegcm_gfortran' for compiling with gfortran
438   and a 'makegcm_ifort' for compiling with ifort (on Gnome)
439   
440== 03/09/10 == EM
441>> Modifications to enable running in double precision (using starts in r4
442   or r8); just add options '-r8 -DNC_DOUBLE' to compile GCM in double precision
443   -> adapted dyn3d/dynetat0.F, physmars/physdem1.F, phymars/soil_settings.F,
444      phymars/readtesassim.F90, phymars/writediagfi.F, phymars/def_var.F90,
445      phymars/writediagsoil.F90, phymars/wstats.F90, phymars/inistats.F
446>> Added dyn3d/writediagdyn.F90 routine (to output scalar dynamical fields),
447   adapted 'comconst.h' and 'comvert.h' to be Fortran77/Fortran 90 compatible.
448
449== 14/12/10 == EM
450>> Add -f option to #!/bin/csh in makegcm* scripts (to make sure that it is
451   the bash environment compiler that is used as a default)
452>> Update convadj.F with RW's version (fixes bug of non conservation of tracers
453   in cases where convection stops at one level and starts at the next).
454
455== 13/12/10 == EM
456>> Update testphys1d.F so that initial tracer profiles may be loaded at
457   initialization
458
459== 24/01/11 == JBM(+ some cleanup by EM)
460>> Reactivated the "doubleq" method (two-moment scheme for dust
461   transport) and connected it with the radiative transfer code. The
462   opacity is set constant below a level indicated by the variable
463   cstdustlevel in aeropacity.F to remove the thick layer of
464   dust near the surface created by the constant lifting rate.
465   The "density scaled opacity" used by the MCS team is computed
466   and saved in dsodust.
467   Updated routines: callradite.F, aeropacity.F, updatereffrad.F,
468   callsedim.F, newsedim.F, initracer.F, vdifc.F, suaer.F90.
469>> Added the use of named scatterers (same method as tracer-by-name)
470   in the radiative transfer code. Scatterers are declared at
471   firstcall in callradite.F (which is the equivalent of traceur.def)
472   and the corresponding indices are saved in the common called
473   aerkind.h (the equivalent of tracer.h).
474   Updated routines: callradite.F, updatereffrad.F, aeropacity.F,
475   suaer.F90, aerkind.h.
476   EM: aerdust.h, aerdata.h and aerice.h are not used any more
477>> Merged callsedim2q.F and callsedim.F in one single routine
478   callsedim.F to allow doubleq to be used with other tracers.
479>> Added an input parameter called beta to newsedim.F, that allows
480   to account for the shape of the particles in the computation of
481   the sedimentation velocity.
482>> Added the ability to transport a radiatively active population of
483   submicron dust particles (flag "submicron" in callphys.def).
484   Updated routines: callradite.F, updatereffrad.F, aeropacity.F,
485   initracer.F, vdifc.F, suaer.F90, inifis.F, callkeys.h.
486>> Connected the predicted size and amount of dust to the water
487   cycle. The size of the particles is now given by rdust in
488   updatereffrad.F, and the amount of cloud condensation nuclei
489   (CCN) is given by ccn in aeropacity.F. The calculation of ccn is
490   done in aeropacity.F because it's deduced from the opacity when
491   doubleq is not used. rnuclei and dustcores are removed from
492   watercloud.F and replaced by rdust and ccn.
493   Updated routines: physiq.F, callradite.F, updatereffrad.F,
494   aeropacity.F, watercloud.F.
495>> Removed the "fake" call to watercloud.F in physiq.F which was used
496   to give the size of the ice particles to the radiative transfer
497   code at firstcall. Instead, rice is computed in updatereffrad.F
498   using a simple equation and a typical amount of dust nuclei (ccn0).
499>> Increased the number of Gauss integration points in
500   aeroptproperties.F.
501>> Added the ability to write the 3D scattering parameters of a
502   given aerosol in the outputs using the out_qwg flag in
503   aeroptproperties.
504>> Changed "DO iir=1,4" into "DO iir=1,nir-1" in suaer.F90 (in case
505   the number of infrared channels is changed).
506>> Added nuice_ref in tracer.h and initracer.F, which is the
507   effective variance of the log-normal distribution used for water-ice
508   particles in the radiative transfer code.
509>> Updated the computation of rice, reffice and rsedice in
510   updatereffrad.F and callsedim.F.
511>> Added nuice_sed in callsedim.F, which is the effective variance
512   of the lognormal distribution used for the sedimentation of
513   water-ice particles.
514>> Added ccn_factor in watercloud.F, which is the ratio of the total
515   number of dust particles over the number of condensation nuclei.
516>> The variable beta is not saved anymore in newsedim.F.
517>> Corrected the BIG bug in lwu.F that was responsible for unstabilities
518   when clouds were radiatively active (FF+EM+JBM!)
519>> Turned ilwd, ilwn and ilwb to 1 in inifis.F.
520>> Added dust and ice visible opacities in the outputs.
521   Modified routine: aeropacity.F.
522>> Named water cycle tuneable parameters (nuice_sed, nuice_ref,
523   alb_surfice, ccn_factor) which are mentioned at firstcall by the GCM
524   (flag "water_param"). Modified routines: callsedim.F, physiq.F,
525   watercloud.F.
526
527== 25/01/2011 == EM
528>> updated testphys1d.F: removed #include "aerdust.h"
529>> cleanup in suaer.F90: no more calls to zerophys; added test to check
530   there is no overflow of isize index (in visible domain averaged properties
531   case)
532>> minor cleanup in newsedim.F (make it more F90 oriented)
533>> added flag 'TESicealbedo' (set to .true. to impose polar surface
534   albedos as observed by TES) in callphys.def
535   
536== 28/01/2011 == EM
537>> added additional tests (to check correct reading of input files) in suaer.F90
538>> updated inifis.F  so that the directory where external data files are to
539   be found (e.g. TES opacities, dust properties, etc.) can be specified in
540   run.def (or callphys.def) as " datadir = /path/to/the/directory "
541
542== 29/01/2011 == AS
543>> added updated mesoscale-related routines in phymars:
544   ----------------------------------------------------------------------------
545   NAME                       CHANGES compared to GCM counterpart
546   ----------------------------------------------------------------------------
547   meso_callkeys.h        --> one variable is added [consider merging w/ GCM?]
548   meso_dustlift.F        --> stress + alpha default, or read in a file
549                               stress.def if here [consider merging w/ GCM?]
550   meso_newcondens.F      --> correction on U V T tendencies is switched
551                               off (unstable in mesoscale)
552   meso_physiq.F          --> major modifications mainly related to I/O
553   meso_slope.h           --> additional common for slope scheme
554   meso_dimphys.h_ref     --> reference common serving as a basis for a
555                               compilation script (makemeso)
556   meso_inifis.F          --> major modifications mainly related to I/O
557   meso_param_slope.F90   --> slope scheme by Spiga and Forget GRL 2008
558                               [consider adding to GCM?]
559   meso_readtesassim.F90  --> an old version because the new F90-compliant
560                               version needs the new makegcm scripts [TBD]
561   meso_testphys1d.F      --> similar to GCM except for routine names
562   ----------------------------------------------------------------------------
563    NB: in meso_dustlift.F and meso_readtesassim.F90, the subroutines
564         have the same name as in the GCM.
565         this is because those files are supposed to be copied
566         in specific temporary folders for compilation
567>> any future change in the following GCM routines in phymars:
568      - callkeys.h
569      - dustlift.F
570      - newcondens.F
571      - physiq.F
572      - inifis.F
573      - readtesassim.F90
574      - testphys1d.F
575   will be in need to be impacted to the corresponding meso_ routines
576   [hence it is important to document this README file]
577>> any change in any other GCM routines than the ones listed will
578   have an effect in mesoscale simulations as well:
579     -- the two models are being kept updated at the same time :)
580     -- the two models would be possibly broken at the same time :(
581
582== 15/02/2011 == EM
583>> updated dissipation coefficients in indissip.F
584
585== 25/02/2011 == EM
586>> corrected bug in 'inifis.F' and 'datafile.h' to really be able to
587   specify (in callphys.def; using datadir=/whatever/path/to/use ) the path
588   to external datafiles (topography, surface properties, etc.)
589
590== 28/02/2011 == JBM + AS
591>> used settings reached by JBM to obtain his PhD results
592      alb_surfice = 0.45  ---  in physiq.F and meso_physiq.F
593      ccn_factor = 4.5    ---  in watercloud.F
594      nuice_sed = 0.45    ---  in callsedim.F
595>> NB: this is supposed to be further refined in the future
596
597== 01/03/2011 == AS + JBM
598>> nasty bug in the water cycle when iradia != 1  [no problem when iradia = 1]
599   --> mesoscale runs w/ water cycle had strange 5-hour fluctuations in RICE, from 80mic to 5mic
600>> PB: calculation of ccn [condensation nuclei] is done in callradite.F
601      * ccn must be saved
602        --> corrected in physiq.F and meso_physiq.F
603      * ccn must not be modified elsewhere [e.g. in watercloud, when divided by ccn_factor]
604        --> all calculations on ccn are now moved in callradite
605
606== 03/03/2011 == AS
607>> Added a pre-compilation flag MESOSCALE so that the LMDZ.MARS GCM
608will compile without stating errors because of mesoscale routines.
609[meso_physiq.F, meso_inifis.F]
610>> Now, this MESOSCALE precompilation flag can be used to lower
611the number of meso_* routines when adaptations for mesoscale
612applications are not very extended.
613   --> meso_testphys1d.F, meso_testphys1d.F, meso_dustlift.F
614       routines were deleted and changes are now moved under
615       the MESOSCALE flag in the original GCM routines
616   --> Completely transparent for GCM compilation
617       since it is devoid of the -DMESOSCALE option
618   --> Very good for syncing because changes in dustlift, newcondens
619       will be directly available in the mesoscale model
620
621== 04/03/2011 == AS + JBM
622>> new version version for aeroptproperties.F in phymars to limit uncertainties and be able to play with ngau
623>> this was coded by JBM in his personal reference version but not transmitted to the team reference version
624
625== 10/05/2011 == AS + JF
626>> in newsedim.F used for mesoscale computations, spurious values close to the surface
627   --> this was related to 1 - exp(-x) calculated as zero in w(ig,l) if x is very small
628   --> fix: when this happens, replace exp(-x) by 1 - x since x ~ 0
629>> in newsedim.F, "if (dztop.gt.epaisseur(ig,l)) then" was closed too soon by an "endif"
630   --> hence basically the simple method was never used
631       and useless calculations with the complex method were carried out
632   --> fix by moving the closing "endif" [in addition to corrections mentioned in the previous point]
633
634== 17/05/2011 == EM
635>> set internal computations using double precision in growthrate.F and
636   watercloud.F (otherwise we sometimes end up with Nans).
637>> add extra checks in newcondens.F to avoid possibility of out of bounds
638   evaluation of array masse()
639 
640== 25/05/2011 == AS
641>> found that the 10/05/2011 bug fix in newsedim.F is also useful for GCM runs.
642>> no more need to modify callradite.F prior to compilation [but still dimradmars.h must be modified]
643   --> in callradite.F we now have
644       -- DEFAULT name_iaer(1) is "dust_conrath"
645       -- IF (doubleq.AND.active) name_iaer(1) = "dust_doubleq"
646       -- IF (water.AND.activice) name_iaer(2) = "h2o_ice" 
647
648== 27/05/2011 == EM
649>> minor bug correction in writeg1d (JYC)
650>> add "-check" to debug option in makegcm_ifort
651
652== 08/06/2011 == EM
653>> minor bug fix in lect_start_archive.F (using wrong surface temp. array).
654   + swiched output messages to english and added that tracers not found
655   in file must be initialized by user.
656>> minor bug fix in datareadnc.F : 'datafile' path must be initialized.
657
658== 08/06/2011 == EM
659>> Significant update on how the number of scatterers is managed:
660   Instead of having to manualy change 'nearkind' in dimradmars.h, the
661   number of scatterers must now be set when compiling, using makegcm
662   "makegcm -s 1" for one scatterer (dust) or "makegcm -s 2" (e.g. dust
663   and water ice), default behaviour (ie not specifying -s #) is -s 1
664   Modified phymars/dimradmars.h , added directory phymars/scatterers
665   with script make_scatterers , and adapted makegcm* scripts.
666
667== 17/06/2011 == AC
668================================================
669======== IMPLEMENTATION OF THERMALS ============
670================================================
671The main goal of this revision is to start including the thermals into the model
672for development purposes. Users should not use the thermals yet, as
673several major configuration changes still need to be done.
674
675This version includes :
676- updraft and downdraft parametrizations
677- velocity in the thermal, including drag
678- plume height analysis
679- closure equation
680- updraft transport of heat, tracers and momentum
681- downdraft transport of heat
682
683This model should not be used without upcoming developments, namely :
684- downdraft transport of tracers and momentum
685- updraft & downdraft transport of q2 (tke)
686- revision of vdif_kc to compute q2 for non-stratified cases
687
688Thermals could also include in a later revision :
689- momentum loss during transport (horizontal drag)
690
691Compilation of the thermals has been successfully tested on ifort, gfortran and pgf90
692
693================================================
694================================================
695
696M      libf/phymars/callkeys.h
697M      libf/phymars/inifis.F
698
699Added new control flags to call the thermals :
700- calltherm (false by default) <- to call thermals
701- outptherm (false by default) <- to output thermal-related diagnostics (for dev purposes)
702================================================
703M      libf/phymars/vdifc.F
704^------> added a temporary output for thermal-related diagnostics
705M      libf/phymars/testphys1d.F
706^------> added treatment for a initialization from a profile of neutral gas (ar)
707      -> will be transformed in a decaying tracer for thermal diagnostics
708M      libf/phymars/physiq.F
709^------> added a section to call the thermals
710      -> changed the call to convadj
711      -> added thermal-related outputs for diagnostics
712M      libf/phymars/convadj.F
713^------> takes now into account the height of thermals to execute convective adjustment
714      => note : convective adjustment needs to be activated when using thermals, in case of a
715         second instable layer above the thermals
716================================================
717A      libf/phymars/calltherm_interface.F90
718^------> Interface between physiq.F and the thermals
719A      libf/phymars/calltherm_mars.F90
720^------> Routine running the sub-timestep of the thermals
721A      libf/phymars/thermcell_main_mars.F90
722^------> Main thermals routine specific to Martian physics
723A      libf/phymars/thermcell_dqupdown.F90
724^------> Thermals subroutine computing transport of quantities by updrafts and downdrafts
725A      libf/phymars/thermcell.F90
726^------> Module including parameters from the Earth to Mars importation. Will disappear in future dev
727================================================
728================================================
729
730== 17/06/2011 == EM
731>>> Updates and corrections (to enable compiling/running in debug mode with
732    ifort)
733- removed option "-free-form" from makegcm_ifort and set mod_loc_dir="."
734  so that module files (produced in local directory by ifort)
735  are moved to LIBO
736- updated initracer.F, physdem1.F, physiq.F, inichim_newstart.F
737  to avoid referencing out-of-bound array indexes (even if unused)
738- cosmetic updates on inwrite.F, datareadnc.F
739- updated newstart.F to initialize and use 'datadir' when looking for files
740- corrected bug on interpolation of sub-surface temperatures in
741  lect_start_archive.F
742
743== 17/06/2011 == AC
744>>> Important updates to thermals parameters
745- Tuned aspect ratio of thermals to suit Buoyancy estimations from LES in CLOSURE relation
746- Renormalization of alim_star after plume
747- Removed alimentation mixing of estimated Teta in plume
748>>> Minor change in makegcm_ifort
749
750== 22/06/2011 == EM
751- added modifications (from JYC & FGG) to tracer.h & initracer.F for ions
752- minor improvement to newstart.F (q=x option, check that tracer index
753  provided by user is valid).
754- minor correction to callradite.F (to enable compilation in debug mode
755  with ifort when there is only one tracer).
756
757== 17/06/2011 == AC
758- Added maximum vertical velocity and heat flux output from thermals
759- Added buoyancy diagnostics
760- Minor modifications in thermals routines
761
762== 23/06/2011 == EM
763- correct bug (introduced previously) in lect_start_archive.F on loop
764  boundaries for soil temperature.
765
766== 01/07/2011 == AC
767- Added new settings for the Martian thermals from new LES observations
768- Revamped thermcell's module variables to allow it's removal
769- Minor changes in physiq and meso_physiq for the call to thermals
770- Switched from dynamic to static memory allocation for all thermals variable
771to gain computation speed
772
773== 04/07/2011 == AC
774- Minor setting modification to thermals
775- Added new flux optimization in thermcell_main_mars.F90, to run properly in 3D
776
777== 14/07/2011 == JBM
778- Tidying up dust properties in DATAFILE for better consistency (cf. suaer.F90)
779- Cosmetic changes in aeropacity.F (changed comment and put a print inside a water flag)
780
781== 15/07/2011 == EM
782>> Implemented using 'z0' roughness length map (important: 'z0' reference
783   field is in datafile surface.nc, which has also been updated).
784- made z0 a z0(ngridmx) array and moved 'z0' from 'planete.h' to 'surfdat.h';
785  added a 'z0_default' (common in surfdat.h) corresponding to the 'control'
786  array value (contole(19) in startfi.nc).
787- adapted 'tabfi.F' to use 'z0_default'.
788- adapted 'phyetat0.F' to look for a 'z0' field in startfi.nc. If 'z0' is not
789  found in the startfi.nc file, then the uniform default value (z0_default)
790  is used.
791- modified 'physdem1.F' to write 'z0' field to restart.nc
792- adapted use of z0() in 'physiq.F' (diagnostic computation of surface stress),
793  'vdifc.F' and 'vdif_cd.F'.
794- adapted 'dustdevil.F' to use 'z0_default'.
795- 'testphys1d.F' now uses 'z0_default', and the value to use can be set
796  in run.def (with "z0=TheValueYouWant").
797- modified 'datareadnc.F' to load reference map of 'z0' from surface.nc, and
798  added a 'z0' option in 'newstart.F' to force a uniform value of z0. Note
799  that the use of the z0 map is automatic when using newstart, but only when
800  it loads a start_archive.nc file.
801
802== 15/07/2011 == AS
803- Modified the mesoscale part so that the previous change by EM does not
804  imply an error in the mesoscale case. More development is needed though
805  to get the "varying z0" capability in the mesoscale model.
806- Worked on versions of meso_physiq and meso_inifis as close as possible
807  to physiq and inifis for more continuity in the process of impacting changes
808  (and even possibly to reach a common version of physiq and inifis).
809  >>> The main point is to make the mesoscale significant specific parts
810  coded into include files in meso_inc so that meso_physiq and meso_inifis
811  looks very close to physiq and inifis.
812  >>> This is completely transparent for GCM users who does not need the
813  contents of meso_inc.
814- Slight cosmetic changes to physiq.f and inifis.F
815  --- some of them e.g. to prepare convergence between meso_physiq and physiq
816- Dropped the meso_ prefix from the slope routines
817  (currently those are only used in the mesoscale model,
818   but one could imagine using those in hi-res GCM runs)
819- Added a MESOSCALE flag to writediagfi so that mesoscale simulations
820  are not bothered with calls put in routines by GCM people
821
822== 19/07/2011 == AS
823- Finished converging meso_physiq.F and meso_inifis.F towards physiq.F and inifis.F
824  --> see previous point 15/07/2011
825  --> meso_ routines no longer exist (everything is in meso_inc and transparent to GCM users)
826  --> GCM routines include mesoscale parts within MESOSCALE precompiler commands
827  --> MESOSCALE parts are as hidden as possible not to mess up with GCM users/developers
828- Cleaned inelegant or useless #ifdef [or] #ifndef MESOSCALE in physiq and inifis so that
829  a minimum amount of such precompiler commands is now reached [mainly related to I/O]
830- Added the SF08 slope insolation model in the general physics parameterizations.
831  Added a callslope keyword in inifis.F and callkeys.h
832  --> This keyword is False by default / True if you use -DMESOSCALE
833- Removed the obsolete call to Viking Lander 1 diagnostic
834  Replaced it with a diagnostic for opacity at the domain center [valid for GCM and mesoscale]
Note: See TracBrowser for help on using the repository browser.