Changeset 3222


Ignore:
Timestamp:
Feb 16, 2024, 3:37:48 PM (4 months ago)
Author:
emillour
Message:

Generic PCM:
Update/cleanup directory: make a user-oriented README and move its previous
contents to changelog.txt which will from now on contain the log of changes.
Add "datadir" and "startfiles" directories with instructions on how to obtain
the reference ones from https://web.lmd.jussieu.fr/~lmdz/planets/
EM

Location:
trunk/LMDZ.GENERIC
Files:
4 added
1 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.GENERIC/README

    r3220 r3222  
    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)
     1This directory contains the Generic Planetary Climate (PCM) physics package and related files.
     2You might want to start with the user manual (and online Wikimedia documentation)
    63
    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
     4Overview of LMDZ.MARS directory contents:
     5* Files:
     6- README: this file
     7- Licence_CeCILL_V2-en.txt and Licence_CeCILL_V2-fr.txt: the software (free) licence
     8- changelog.txt: Record of code changes (mostly for maintainers)
     9- ManualGCM_GENERIC.pdf: (somewhat outdated) user manual. Do also check the more recent
     10  online Wikimedia pages:
     11https://lmdz-forge.lmd.jussieu.fr/mediawiki/Planets/index.php/Main_Page
    912
    10 >>> directory contents of 'aeronomars', 'grid' and 'filtrez' are simillar
    11     to those in /u/emlmd/LMDZ.MARS.mixdyn
     13* Directories:
     14- datadir: various external datasets needed by the PCM at run-time
     15- deftank: examples of input parameters and settings for the PCM runs
     16- DOC: Latex source files of the user manual
     17- libf: Fortran source code of the Mars physics package
     18- startfiles: PCM initial state files
     19- utilities: post-processing utilities for PCM outputs
    1220
    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 == WORK FOR GENERIC MODEL STARTS HERE
    259 ==
    260    
    261 == 01/08/09 ==
    262 >>> Old Martian radiative transfer removed completely, new correlated-k
    263     scheme implemented in its place. Central function is callcorrk.F.
    264     Radiative properties are no longer stored in dimradmars.h, but in the two
    265     files radinc_h.F90 and radcommon_h.F90. 3D aerosol scheme
    266     incorporated into callcorrk.F. dustopacity.F renamed aeropacity.F
    267     and substantially simplified. For now the option to include dust
    268     as an aerosol has been removed.
    269 
    270 >>> newcondense.F replaced by condense_co2cloud.F90. This is basically
    271     Francois' routine from the old model, adapted to work with the new
    272     generalised tracer scheme.
    273 
    274 >>> Options added in physiq.F and tabfi.F to allow for planets with
    275     varying orbital parameters, radii, gravity etc. For the moment we
    276     select the planet using the variable 'planettype' in
    277     callphys.def. This could probably be improved in the future.
    278 
    279 >>> Many new options added to callphys.def.
    280 
    281    
    282    
    283    
    284    
    285 == 25/11/2009 ==
    286 >>>> List of changes and modifications
    287 - modified watercloud.F: added sanity check (i.e. do we have a water tracer?)
    288 - modified dyn3d/dynetat0.F --> removed possibility of reindexing tracers
    289 - modified phyetat0.F --> removed possibility of reindexing tracers
    290 
    291 -- removed using a "co2ice" array to store surface CO2 ice
    292   -> adapted surfini.F & physiq.F to use qsurf(:,igcm_co2_ice)
    293      instead of co2ice(:)
    294   -> modified initracer.F & tracer.h to properly initialize (and store)
    295      a "co2_ice" tracer.
    296   -> removed 'co2ice' from vdifc.F (it was not used there anyway)
    297      and from phsdem1.F
    298   -> removed possibility of calling 'newcondens' from physiq.F
    299   -> cleaned up newstart.F, lect_start_archive.F, start2archive.F to not use
    300   "co2ice" field but qsurf(igcm_co2_ice)
    301 
    302 -- adapted 'create_make_gcm' and 'makegcm' scripts so that we don't need
    303    to have and (unused) 'aeronomars' directory around.
    304  
    305 -- shifted to reading traceur.def (dyn3d/iniadvtrac.F) in an Earth-LMDZ4-like
    306    fashion:
    307    first line == number of tracers
    308    and then tracer name (1 per line; later we'll also add advection scheme type)
    309 -- NOTE BY RW: Here would be a good place to also note which tracer (if any) is
    310    the 'variable gas' in the radiative transfer
    311 
    312 -- Made some changes in tabfi.F to let user change planet parameters
    313    such as rotation rate, molar mass of atmosphere, ...
    314    (NB: note however that we seem to lose dynamics/physics coherence ...
    315     we should probably read these values from a planet.def file)
    316 
    317 -- Changed condens_co2cloud.F : added a check for presence of CO2 gas and output
    318    of corresponding tendency.
    319 
    320 
    321 == 15/12/2009 ==
    322 >>> Correlated-k radiative transfer now reads spectral bands and p-T
    323     matrix values from ascii files; the code checks that the number of
    324     bands and matrix elements in the files match those written in
    325     radinc.F90 on the first call.
    326 
    327 >>> Water vapour tracer coupled to variable gas species in radiative
    328     transfer; option also given to run with fixed relative humidity
    329     profiles. 'Variable gas species' option added to callphys.def.
    330 
    331 >>> Surface albedo updated to be one band everywhere.
    332 
    333 >>> suaer_corrk.F90 modified to use different ep, omeg, g variables in
    334     the visible and infrared. This is necessary because the number of
    335     bands is, in general, different.
    336 
    337 >>> suaer_corrk.F90 has an option to accept Francois' new CO2 ice
    338     values (and convert wvl to metres!!).
    339 
    340 >>> optci.F --> optci.F90 so that water vapour continuum subroutine
    341     can be included.
    342 
    343 == 08/01/10 ==
    344 >>> Option to change pref for hybrid coordinates added to newstart.F.
    345 
    346 
    347 == 15/01/2010 ==
    348 >>> Upgraded newstart.F: added possibility to reset refrence surface pressure
    349    "preff" (and pa)
    350 >>> tabfi.F: added possibility of changing value of "year_day"
    351 >>> cosmetic change in callphys.def : separate "universal" parameters
    352     and planet-specific parameters (in a separate file, e.g. earlymars.def)
    353    
    354 == 22/01/2010 ==
    355 ==> call this version LMDZ.GENERIC
    356 >>> Some cleanup & upgrades:
    357 -- split parameters in callphys.def into generic stuff (stays in callphys.def)
    358    and another more specific file (e.g. earlymars.def).
    359 -- added 'output_olr' key (in callkeys.h; read in physiq.F) to trigger
    360    output of fluxes in ascii file 'olr.txt'
    361 -- removed (non-generic) 'kastprof' and 'nearcond' keys/options in physiq.F
    362   (also removed file kastprof_fn.F)
    363 -- had to set 'fixh2ovap  =.false. in callcorrk.F to avoid
    364    "out of range subscript" pb in callcorrk.F
    365    ==> this should be improved / better controlled in the future
    366 -- updated newsedim.F to use "molrad, visc, avogado values from comcstfi.h
    367    (and not local versions of these constants)
    368 -- fixed buggy -O option in makegcm (and makegcm_g95);
    369 
    370 == 22/02/2010 ==
    371 ==> call this version LMDZ.GENERIC.v0.31
    372 -- rain.F, manabe.F and largescale.F subroutines added to water cycle
    373 -- several new toggles added to earlymars.def
    374 
    375 == 28/03/2010 ==
    376 ==> call this version LMDZ.GENERIC.v0.4
    377 -- many changes for this version!
    378 -- radiative transfer --
    379    A new system was implemented that automatically reads the p, T, g,
    380    Q and band values from files. The dataset required is now specified
    381    in callphys.def. We still need to edit radinc_h when the corrk array
    382    sizes change - think about improving this in the future.
    383 -- water cycle --
    384    A watercommon_h mod file was created, several files were renamed
    385    and moist convection and precipitation subroutines were added.
    386    Still needs some testing!
    387 -- OLR --
    388    Two new functions were added: one to produce .nc files of the OLR
    389    by band, and the other to save the upgoing radiation by band in 1D
    390    as a .txt file.
    391 -- general structure --
    392    tabfi.F, newstart.F etc. cleaned up + it was checked that they pass
    393    variables correctly. Several new options added to run.def for 1D,
    394    in order to allow truly arbitrary planet simulations. The
    395    'planettype' option has been removed as it screwed things up completely.
    396 -- energy conservation --
    397    I found that the planckir function in the radiative transfer did not
    398    always produce values that summed to sigma T^4. A new test was implemented
    399    to check for this problem and the standard band widths in the IR
    400    were increased.
    401 
    402 == 31/03/2010 ==
    403 ==> call this version LMDZ.GENERIC.v0.5
    404 -- OLR --
    405    The .nc functions were implemented and tested. It was necessary to add
    406    new functions 'writediagspec.F' and 'iniwrite_spec.F'.
    407 -- CO2 condensation --
    408    In 1D we now exit automatically if CO2 is condensing on the
    409    surface.
    410 -- G1D --
    411    We can now choose at the beginning of physiq.F, using saveG1D, how
    412    many times we want to save per day in 1D (rather than every single
    413    time that physiq is called).
    414 -- water cycle --
    415    I corrected a nasty bug in callcorrk involving varfixed, real*8 and
    416    epsi. I corrected a simple bug in the writing of qsurf in g1d.dat.
    417    rain.F has been tested and the algorithm for precipitation evaporation
    418    modified to that written in the manual of Larent Li. Cloud fraction
    419    variable is now included. activice and iceparty are gone, ~replaced
    420    by watercond and waterrain.
    421 -- orbit --
    422    nres and tlocked were added as basic options to callphys.def
    423 -- radiative transfer --
    424    I added error checking for out-of-bounds temperature in
    425    callcorrk.F. I added a new file calc_rayleigh.F90 to calculate
    426    Rayleigh scattering using a weighted mean, as opposed to simply the
    427    midpoint band values. Band discretisation is now even more
    428    automated than before: the coefficients are stored in directories
    429    like /earth/32x36/, and we can compile the GCM like this:
    430    makegcm -d 32x24x20 -b 32x36 -p std gcm.
    431    A bug was fixed involving emissivity not being properly passed from
    432    newstart.e to the main part of the code.
    433    Stellar spectra are now calculated automatically for any range of
    434    bands from high resolution data (originally from the VPL website).
    435 -- vertical discretisation --
    436    I corrected a bug in testphys1d that used a fixed value of
    437    temperature to compute the altitude levels in the model. Now we use
    438    the scale height from z2sig.def instead. Values of preff and pa are
    439    no longer defined in testphys1d (they're not needed).
    440 -- Non-ideal gases --
    441    I have replaced cpp in many places with cpp_3D in physiq. This is a
    442    major change, but there are enough cases where it will be useful to
    443    make it worthwhile in the universal code. I have done the same with rcp.
    444 
    445 == 10/10/2010 ==
    446 ==> call this version LMDZ.GENERIC.v0.6
    447 -- startup --
    448    We now check water tracers exist in newstart.F before all watery initialisation options.
    449    Added an option 'autozlevs' to run.def (and logic.h). When true this recalculates the scale
    450    height in z2sig.def in order to get the same minimum pressure for any resolution.
    451    Currently, this is only useful for one-d simulations.
    452    Pressure is now distributed better in newstart.F. There was a bug before when the global mean of phi
    453    was not equal to zero and the surface pressure was changed with topography still present.
    454    In initracer, we no longer automatically set h2o_vap=h2o_ice.   
    455 
    456 -- general --
    457    periheli, apheli --> periastr, apoastr. Note this necessitates a change in start_planet too.
    458    testphys1d.F --> rcm1d.F
    459    physiq.F, callcorrk.F upgraded to Fortran 90 to remove evil zerophys.
    460    I cleaned up the method of displaying energy balance and temperature range in the model a bit.
    461    Pure H2 atmospheres are now permitted, although the code is _untested_. Rayleigh scattering,
    462    specific heat capacities and molar masses are varied, and the H2-H2 collision-induced data
    463    of Grushka et al. is used for the radiative transfer.
    464 
    465 -- boundary layer --
    466    An improved version of vdifc.F has been created that includes the latent heat effect of water vapor,
    467    following the method used in 'clmain' in the LMDZ terrestrial model.
    468 
    469 -- water cycle --
    470    Benjamin's improvements have been added, namely the hydrology, and reevaporation.
    471    Variable cloud fractions are allowed, or a global fixed value may be chosen
    472    for use in aeropacity. Surface wetness (beta) is now calculated in a simple way, and
    473    outputed as a diagnostic, along with the atmospheric relative humidity.
    474  
    475    mol/mol to kg/kg bug in callcorrk corrected.
    476 
    477 -- radiative transfer --
    478    A major bug in gfluxv.F was corrected. It involved BSURF, the radiation reflected upwards from
    479    the ground.
    480    In aeropacity, we now set the cloud opacity in the top layer of the atmosphere to zero. This solves
    481    an instability problem that was occurring when CO2 clouds formed.
    482    Dust is back! Only fixed profiles allowed for now. It is assigned "naerkind=3" in aeropacity.F90.
    483    If 'CLFvarying' is enabled, the corrk subroutine is now called twice per timestep - once for clear
    484    skies and once for cloudy. This slows things down but is effective for Earth-like simulations.
    485    An optional Newtonian cooling scheme has been implemented that can replace the correlated-k method
    486    for dynamical tests etc. It is pretty experimental and has not been extensively tested.
    487 
    488 -- Dynamics --
    489    callgroupeun in gcm.F has been set to FALSE, as it does not conserve tracers.
    490    The coefficient facup has been set to 1 in inidissip.F. We may need to mess
    491    with this later if it makes the model too unstable.
    492 
    493 == 1/08/2011 ==
    494 ==> call this version LMDZ.GENERIC.v0.7
    495 
    496    Main change: a new file 'gases.def' now required at startup. This tells us which gases are in
    497    the planet's atmosphere. It is used to calculate fundamental quantities like cpp and mugaz.
    498    A check is made against the radiative transfer data to make sure they correspond.
    499 
    500    Code has been tested successfully using the 'gfortran compiler'.
    501 
    502 -- startup --
    503    a bug involving tsoil interpolation in lect_start_archive.F was corrected.   
    504 
    505 -- aerosols --
    506    gauss integration number 5-->10 in aeroptproperties.F90
    507 
    508 -- water cycle --
    509    Big fat bug in rain.F90 corrected. The routine internally updated the temperature
    510    with new tendencies before it was supposed to happen!
    511    Bug in oborealis where phi not properly updated was corrected.
    512    Improvements to hydrol.F90: zdtsurf_hyd --> pdtsurf_hyd
    513    A 'sourceevol' option was added (accessed in callphys.def) that allows us to track the
    514    evolution of the surface distribution over time.
    515    Another bug in rain corrected involving evaporation - it was heating the atmosphere
    516    rather than cooling it...
    517 
    518 -- convection --
    519    I found a bug in convadj.F that breaks tracer conservation when convection stops at one layer
    520    and immediately restarts in the next one.
    521 
    522 -- diagnostics --
    523    Some bugs corrected in the computation of 3D averages for the H2O / energy conservation
    524    diagnostics.
    525 
    526 -- radiative transfer --
    527    A bug involving continuum opacities (variable DCONT) was corrected in optci.F90 and optcv.F0.
    528    H2-H2 warming now in theory reliable and correct (60-1000 K).
    529    A bug involving the definition of the Planck function boundaries was corrected in sfluxi.F90
    530    and gfluxi.F.
    531 
    532 == 21/10/2011 == EM
    533 - added FF's upgrade of writediagfi. Now, if at runtime there is a diagfi.def
    534   file, it should contain the list of variables (1 per line) than will be put
    535   in the diagfi.nc file. If there is no diagfi.def file, then all variables
    536   are put in the diagfi.nc file (as was the case before).
    537 
    538 === 10/11/2011 == EM
    539 - Updated the makegcm(s) so that default behaviour is to set LMDGCM env variable
    540   to be the directory in which the makegcm script is. Updated the makegcm_*
    541   to use "SOURCE" to identify code and be compatible with latest
    542   'create_make_gcm'.
    543  
    544 == 10/11/2011 == EM
    545 - Upgrade: The location of the 'datagcm' directory can now be given in the
    546   callphys.def file ( datadir = /absolute/path/to/datagcm ). Changed
    547   "datafile.h" into a F90 module "datafile_mod.F90" and spread this change
    548   to all routines that used to use "datafile.h".
    549 
    550 == 10/11/2011 == EM
    551 - Upgrade of the 'create_make_gcm' script: objects are removed from the
    552   libraries before compilation, which enforces that the gcm will fail to
    553   compile if any routine failed to compile.
    554 
    555 == 12/12/2011 == AS
    556 - Use of allocatable arrays to set corrk stuff through reading *.dat files, without the need to change radinc_h manually.
    557 - Allocation is done in sugas_corrk which is within firstcall loop in callcorrk.
    558 - Note that N_LGAUSS is still a parameter. It is not supposed to change much.
    559 - Compiles fine. Tested with debugging options through pgdbg. Runs fine. Exact same results in Early Mars test case.
    560 
    561 Modified files:
    562 M              469   libf/phystd/physiq.F90
    563 M              469   libf/phystd/sugas_corrk.F90
    564 M              469   libf/phystd/callcorrk.F90
    565 M              469   libf/phystd/radinc_h.F90
    566 M              469   libf/phystd/radcommon_h.F90
    567 
    568 == 13/12/2011 == AS
    569 - Same spirit as previous commit, but for ngasmx which is now read in gases.def -- before arrays w/ dim ngasmx are allocated dynamically
    570 - Allocation is done in su_gases.F90 which is called in inifis
    571 - Outside su_gases.F90, very few modifications to the code : the new module "gases_h.F90" simply replaces the old common "gases.h" !
    572 - Compiles fine. Tested with debugging options through pgdbg. Runs fine. Exact same results in Early Mars test case.
    573 
    574 == 20/12/2011 == JL + AS
    575 - Allocatable gastype in sugas_corrk instead of hardcoded (it was a problem for more than 4 gases!)
    576 
    577 == 13/02/2012 == JL + AS
    578 - All outputs are now in netCDF format. Even in 1D (No more G1D)
    579 - Clean up of the call to callcorrk when CLFvarying=true
    580 - Corrects a bug in writediagspecIR/VI. Output are now in W/m2/cm-1 as a function of the wavenumber in cm-1
    581 - Enable writediagspecIR/V to work in the CLFvarying=true case (output now done in Physiq after writediagfi)
    582 - Add a simple treatment for the supersaturation of CO2 (see forget et al 2012)
    583 - corrects a small bug when no clouds are present in aeropacity
    584 
    585 == 16/02/2012 == JL + EM
    586 - Mesh area now present in 1d diag files.
    587 - Spectral Bandwidth included in the diagspec files
    588 - Correction of a initialzation bug on day_step and ecritphy in rcm1d
    589 
    590 == 17/02/2012 == RW
    591 - qsurf bug in variable species rad. tran. removed
    592 - line to update kappa in newstart.F added - necessary to synchronise dynamics and physics
    593 - three obsolete files removed from dyn3d/ directory
    594 - calc_cpp_mugaz --> check_cpp_mugaz, with override option in callphys.def
    595 - kcm1d no longer consistent with new code, but I haven't updated as I'm still working on it
    596   and as far as I know noone else uses it. If that changes let me know.
    597 
    598 == 27/02/2012 == AS
    599 - Temperature grid for Planck calculations can now be refined through the parameter NTfac in radinc_h.
    600   Default is NTfac = 1.0D-1, i.e. Delta T = 0.1 K
    601 
    602 == 16/03/2012 == JL
    603 - Removed cpp3D and nonideal stuff.
    604 
    605 == 19/03/2012 == EM
    606 Some cleanup and bug fixing:
    607 - "cloudfrac" was not well written to restartfi (wrong size).
    608 - missing save attribute for "reffrad" in physiq.F90.
    609 - cleanup recomputation of surface pressure in newstart and change loop order
    610   in interp_horiz (which "fixes" an odd behaviour which fills some arrays with
    611   zeros, but only when using some versions of ifort!)
    612 
    613 == 19/03/2012 == AS
    614 - Cleaned rcm1d.F and made it truly generic by asking for planetary constants without any default values.
    615 - Settings are now needed in a rcm1d.def file. Unbeknown to the user, we create a minimal run.def file, read parameters, then remove this dummy run.def.
    616 - Introduced a keyword force_cpp if the user wants to give values for cpp and mugaz in def files.
    617 
    618 == 19/03/2012 == AS+FF
    619 - Introduced global1d in callcorrk so that global (using sza) or local (using latitude) 1D simulations can be carried out.
    620 - Converted all astronomical distances in AU instead of Mkm.
    621 - This might cause problems with old start files. So added a test in iniorbit. A quite dirty test, but that'll do the job.
    622 
    623 == 22/03/2012 == JL
    624 - New turbulent diffusion scheme solving "most" energy conservation problems:
    625      - Turbulent energy created by buoyancy effects is now dissipated back into enthalpy
    626      - the scheme is now written in an enthalpy conservative way
    627 - Turbulent diffusion now treated in routine turbdiff (in F90).
    628 - Temporarily, for comparison, the old vdifc can be used
    629       by setting UseTurbDiff=.false. in physiq.F90
    630 - The sensible heat flux is now an output
    631 - Corrected evaporation at the surface when all the surface water is evaporated (JL+BC).
    632 - Added new energy conservation diagnostic variables and output
    633 
    634 == 26/03/2012 == JL
    635 - Added double gray case (if graybody=true in callphys.def):
    636    - opacities are set to a constant value in sugas_corrk.
    637    - the values are kappa_IR m^2/kg in the infrared (to be read in callphys.def)
    638                     kappa_VI m^2/kg in the visible (to be read in callphys.def)
    639 - Cleaned continuum part in optc*
    640 - Added .def files for a typical 1d earth case in deftank (dry case for the moment)
    641 - Corrects a bug on potential temperature calculation in physic
    642 
    643 == 27/03/2012 == JL
    644 - Corrects the computation of planck function at the surface in sfluxi
    645      so that its integral is equal to sigma Tsurf^4.
    646 - This ensure that no flux is lost due to:
    647      -truncation of the planck function at high/low wavenumber
    648      -numerical error during first spectral computation of the planck function
    649      -discrepancy between Tsurf and NTS/NTfac in sfluxi
    650 - OLR now equal to LW net heating/cooling at equilibrium!
    651 - As much as possible, only the value of the stephan boltzmann constant defined in racommon_h (and the
    652 corresponding variable, sigma) should be used. Now done in physics, vdifc and turbdiff.
    653  
    654 == 16/04/2012 == JL
    655 - Added consistency checks for calculations including water and global1d+diurnal.
    656 - Corrected small bugs in precipitation scheme
    657 
    658 == 04/05/2012 == JL
    659 - Correction a huge bug in newstart: rcp and cpp can now be changed in start.nc files and are the same as in startfi.nc;
    660        Even when starting from start and startfi files.
    661    - rcp, cpp and mugaz can now be computed using gases.def in newstart
    662 - Correction of a bug arising in gcm.F when the solar days are long (thanks Melanie V.)
    663 - Corrected the temperature used to differentiate sublimation and evaporation in watersat_grad
    664 - Minor name changes in watercommon
    665 - Better physical parametrization of the effective radius of liquid and icy water cloud particles in callcorrk
    666        (for radfixed=true)
    667 - Added consistency check in inifis
    668 - Moved 1d water initialization from physiqu to rcm1d
    669 - All enertests in physiq written in a matricial (F90) way. The rest of physiqu should follow soon
    670 
    671 == 25/05/2012 == EM
    672 - Significant update on how the number of scatterers is managed:
    673   Instead of having to manualy change 'nearkind' in radinc_h.F90, the
    674   number of scatterers must now be set when compiling, using makegcm
    675   "makegcm -s 1" for one scatterer or "makegcm -s 2" for two (e.g. dust
    676   and water ice), default behaviour (ie not specifying -s #) is -s 1
    677   Modified phystd/radinc_h.F90 , added directory phystd/scatterers
    678   with script make_scatterers , and adapted makegcm* scripts.
    679 
    680 == 06/06/2012 == EM
    681 - Corrected the polar mesh surface area which was wrong in the physics (changes
    682   in phyetat0.F, calfis.F and newstart.F)
    683 - Some cleanup in newstart.F (removed some obsolete "Mars" options: mons_ice,..)
    684   and also added option "q=profile" to initialize a tracer with a profile
    685   read from file "profile_tracername"
    686 
    687 == 29/06/2012 == EM
    688 - Some cleanup in start2archive.F and ini_archive.F to get them to work for
    689   the generic model (removed some "Martian" specificities).
    690  
    691 == 17/07/2012 == JL for LK
    692 - Generalization of aerosol scheme:
    693     - any number of aerosols can be used and id numbers are determined consistently by the code. Aerosol order
    694     not important anymore.
    695     - addition of a module with the id numbers for aerosols (aerosol_mod.F90).
    696     - initialization of aerosols id numbers in iniaerosol.F90
    697     - compile with -s x where x *must* be equal to the number of aerosols turned on in callphys.def (either by a
    698     flag or by dusttau>0 for dust).
    699       => may have to erase object files when compiling with s option for the first time.
    700 - For no aerosols, run with aeroco2=.true. and aerofixco2=.true (the default distribution for fixed co2
    701 aerosols is 1.e-9; can be changed in aeropacity).
    702 - If starting from an old start file, recreate start file with the q=0 option in newstart.e.
    703 - update callphys.def with aeroXXX and aerofixXXX options (only XXX=co2,h2o supported for
    704 now). Dust is activated by setting dusttau>0. See the early mars case in deftank.
    705 - To add other aerosols, see Laura Kerber.
    706 
    707 == 18/07/2012 == JL
    708 - New water cycle scheme:
    709    - largescale now in F90. Robustness increased by i) including evap inside largescale ii) computing the
    710         condensed water amount iteratively
    711    - same improvements in moistadj.
    712    - Water thermodynamical data and saturation curves centralized in module watercommn_h
    713        - The saturation curves used are now Tetens formula as they are analyticaly inversible (Ts(P)-> Ps(T)).
    714           New saturation curve yields very good agreement with the former one.
    715        - Saturation curves are now generalized for arbitrary water amount (not just q<<1)
    716        - The old watersat should be removed soon.
    717    - The effect of water vapor on total (surface) pressure can be taken into account by setting
    718       mass_redistrib=.true. in callphys.def (routine mass_redistribution inspired from co2_condense in martian
    719       model but with a different scheme as many routines evaporate/condense water vapor).
    720 - New cloud and precipitation scheme (JL + BC):
    721    - The default recovery assumption for computing the total cloud fraction has been changed (total random gave too
    722       large cloud fractions). See totalcloudfrac.F90 for details and to change this.
    723    - Totalcloudfraction now set the total cloud fraction to the fraction of the
    724       optically thickest cloud and totalcloudfrac is thus called in aeropacity.
    725    - Only the total cloud fraction is used to compute optical depth in aeropacity (no more effective
    726       optical depth with exponential formula).
    727    - 4 precipitation schemes are now available (see rain.F90 for details). The choice can be made using precip_scheme
    728       in callphys.def. Usage of the more physically based model of Boucher et al 95 (precip_scheme=4) is recommended.
    729       default behavior is set to the former "simple scheme" (precip_scheme=1).
    730    - See rain.f90 to determine the parameter to be defined in callphys.def as a function of the precipitation scheme used.
    731 - Physiq.F90 now written in a matricial (more F90) way.
    732 - Radii (H2O and CO2 cloud particles, aerosols, duts, ...) calculations now centralized in module radii_mod.F90
    733    and work with the new aerosol scheme implemented by Laura K. Some inconsistency may remain in callsedim.
    734 - Corrected gray gas mode. The use of kappa_VI or kappa_IR far a given band is now based on its wavenumber independently of
    735    SW and LW calculations
    736    
    737 Implementation compiled with ifort and pgf90.
    738 gcm.e runs in Earth and Early Mars case with CO2 and H2O cycle + dust.
    739 
    740 == 19/07/2012 == JL
    741 - Corrected precipitation evaporation scheme + snow fall (JL+BC)
    742 - Commented some unecessary writediagfi calls that where used for test.
    743 
    744 == 24/07/2012 == JL
    745 - Correction of a bug in turbulent diffusion (turbdiff.F90)
    746    => This solves a water conservation problem arising when the code tries to
    747    evaporate over dry land.
    748 
    749 == 26/07/2012 == AS
    750 - Bug fix in physiq : the size of OLR_nu is L_NSPECTI and not L_NSPECTV
    751 - A more robust aerosol_mod + iniaerosol : problems with ifort+parallel solved, while still OK with other compilers and seq runs.
    752 
    753 == 05/09/2012 == JL
    754 - Correction of the calculation of the solar longitude in tlocked case.
    755     -Can now handle any prograde resonance with nres=omega_rot/omega_orb.
    756     -Sun now goes westward for the standard 2:1 case, as expected.
    757 - In the gray case, the separation between kappa_IR and VI is now set by
    758     wave number, independently of the usual IR/VISIBLE calculation separation.
    759     i.e. kappa_IR can be used in the calculation of the downward stellar flux
    760       if the wavenumber in the band is low enough and vice versa.
    761 - In ave_stelspec, stellar flux averaging has been generalized to incorporate
    762     very red/blue stellar spectra (great care must however be taken of the band
    763     limit used for the corralated k distributions).
    764      -Brown dwarf spectra from Allard et al. have been added.
    765      -Any Black body temperature can now be used.
    766 
    767 == 19/09/2012 == JL
    768 - Correction in largescale to improve robustness when large water vapor amount
    769 - Correction in soil_setting to allow change of the number of subsurface layers
    770 
    771 == 19/09/2012 == AS
    772 
    773 (Sorry for long text but this is a quite major commit)
    774 
    775 Paving the path for parallel computations. And moving towards a more flexible code.
    776 
    777 Automatic allocation is used within all routines in phystd. No further mention to ngridmx and nqmx.
    778 
    779 1. ngridmx and nqmx are still used in LMDZ.GENERIC in the dyn3d part
    780 2. if the LMDZ4/LMDZ5 dynamical core is used, there is no more fixed dimensions ngridmx and nqmx
    781    --> a fully flexible parallel implementation is now possible (e.g. no need to recompile when changing numbers of processors)
    782 
    783 The important stuff :
    784 - Compilation checked with ifort. OK with and without debug mode. No errors.
    785   Checked for: gcm, newstart, rcm1d, kcm1d
    786 - RUN GCM: Running an Earth test case. Comparison with previous revision
    787   --> debug mode : perfect match. bit by bit (diff command). checked with plots
    788   --> O1 mode : close match (checked with plots)
    789   --> O2 mode : sometimes up to 0.5 K departure....
    790   BUT in this new version O2 and O1 are quite close while in previous version O1 and O2 differed by about, well, typically 0.5 K
    791   (pictures available on request)
    792 - RUN NEWSTART : perfect match (bit-by-bit) in either debug or normal mode.
    793 - RUN RCM1D : perfect match in normal mode.
    794 - RUN KCM1D : not tested (I don't know what is the use of kcm1d)
    795 
    796 List of main changes :
    797 - Additional arguments to some subroutines (ngrid and nq)
    798 - F77 include strategy is obsolete and replaced by F90 module strategy
    799   In this new strategy arrays are allocatable and allocated once at first use
    800   This has to be done for all common featuring arrays defined with ngridmx or nqmx
    801     surfdat.h >> surfdat_h.F90
    802     tracer.h >> tracer_h.F90
    803     comsaison.h >> comsaison_h.F90
    804     comgeomfi.h >> comgeomfi_h.F90   
    805     comsoil.h >> comsoil_h.F90
    806     comdiurn.h >> comdiurn_h.F90
    807     fisice.h >> DELETED. was not used. probably a fossil.
    808     watercap.h >> DELETED. variable put in surfdat_h.F90
    809 - F77 'save' strategy is obsolete and replaced by F90 'allocatable save' strategy
    810   (see previous point and e.g. new version of physiq.F90)
    811 - Suppressing any mention to advtrac.h which is a common in the dynamics and needs nqmx
    812   This was easily solved by adding an argument with tracer names, coming from the dynamics
    813   This is probably not a definitive solution,
    814   ... but this allows for generic physics to work easily with either LMDZ.GENERIC or LMDZ dynamical cores
    815 - Removing consistency tests between nq and nqmx ; and ngrid and ngridmx. No use now!
    816 - Adaptation of rcm1d, kcm1d, newstart given above-mentioned changes
    817 
    818 A note on phyetat0 and soil_setting:
    819 - Now written so that a slice of horizontal size 'ngrid' starting at grid point 'cursor' is read in startfi.nc
    820   'cursor' is defined in dimphys.h and initialized by inifis (or in newstart)
    821   this is useful for parallel computations.
    822   default behavior is the usual one : sequential runs, cursor is 1, size ngrid is the whole global domain
    823 
    824 A note on an additional change :
    825 - nueffrad is now an argument to callcorrk as is the case for reffrad
    826   both are saved in physiq
    827   this is for consistency and lisibility (previously nueffrad was saved in callcorrk)
    828   ... but there is a call to a function which modifies nueffrad in physiq
    829   ... previously this was not modifying nueffrad (although it was quite cumbersome to detect this)
    830   ... to be conservative I kept this behaviour and highlighted it with an array nueffrad_dummy
    831   ... I added a comment because someone might want to change this
    832 
    833 == 20/09/2012 == AS
    834 A more robust way to count lines in setspi and setspv.
    835 bandlen.txt file is no longer used. This was causing problems with MPI computations.
    836 
    837 == 06/11/2012 == EM
    838 - Fixed bug in disvert: pseudo-altitude pseudoalt() should be computed using
    839   the scale height H provided in "z2sig.def" (and not 10.0).
    840 
    841 == 10/11/2012 and 23/11/2012 == AS
    842 - Corrected problems with allocated arrays in start2archive and newstart since the 19/09/2012 major commit
    843 - Modified those programs (and iniadvtrac) so that they can be used when compiling with -t 0
    844 
    845 == 20/12/2012 == EM
    846 - Fixed sedimentation issue: ensure in callsedim that the correct radii are
    847   provided to newsedim and also that the updated temperature and tracer
    848   mixing ratios are used to compute sedimentation.
    849 - Updated the way aerosol radii are considered and used; routines in radii_mod
    850   (h2o_reffrad, co2_reffrad, etc.) only handle a single aerosol. The idea here
    851   is that these can be called from anywhere and that the caller doesn't need to
    852   have the full (naerkind size) array of aerosol radii.
    853 - cleanup (addition of intent(..) to routine arguments) in various routines
    854 
    855 == 10/01/2013 == AS
    856 - Fixed an allocating bug which arises from previous modifications
    857   owing to the double use of callcorrk with CLF_varying
    858 - Fixed a small bug in a diagnostic in the end of calc_rayleigh. Some picky compilers complain.
    859 - Fixed a small bug with the array noms which is not allocated when tracer is false. But still need in physdem1.
    860 
    861 == 10/01/2013 == AS
    862 Added calls to FH subroutines to output physical fields in parallel. This is under precompiling flags CPP_PARA.
    863 This allows for LMDZ.UNIVERSAL users to use writediagfi with parallel computations.
    864 These lines are not compiled by casual users of LMDZ.GENERIC (or users of LMDZ.UNIVERSAL in sequential mode).
    865 
    866 == 23/01/2013 == JL
    867 - Correction in largescale. a rneb factor was forgotten
    868 - Added some spectra in ave_stelpec
    869 - Corrected reevaporation in rain. Now conserve water better
    870 
    871 == 24/01/2013 == AS + JL
    872 A more robust way to refer to gas type.
    873 - Gas names with an arbitrary number of characters (<20) can be used
    874   This is good for C2H2, C2H6, H2SO4, C17H21NO4, etc...
    875   !!! Remember this must be compliant with Q.dat in corrk_data !!!
    876 - igas_... labels are assigned once for all in su_gases
    877   Then using igas_... everywhere instead of gnom (except for kcm stuff)
    878 - Users can still use e.g. H2_ but H2 also works
    879 - Simplified condense_cloud so that igas_CO2 is used directly
    880 
    881 == 09/02/2013 == AS
    882 - Optimized calculations for continuum (done for H2 and He, to be done for others)
    883       - new common bilinear interpolation routine (bilinearbig)
    884       - optimization: only one calculation is actually needed
    885                       to find indexes of wavelength for bilinear interpolation
    886                       ... because this will not change with level and integration step!
    887       - optimization: use while loop in bilinearbig
    888       - completely similar results obtained (test case for a gas giant, many simulated days)
    889   NB: those changes really improve gcm speed (factor 2.2 for whole model!)
    890       continuum was very expensive, now very cheap
    891       --> e.g. 1 day, 25 dyn ts, 5 phys ts
    892       --> before: 243 seconds (including 120 seconds for continuum bilinear interpolation)
    893       --> after: 108 seconds
    894 - Corrected a bug: Continuum in inifis instead of continuum
    895     ... until now, most users (unbeknownst to them) were running with the continuum by default!
    896 - Cosmetic changes in optcv (mostly spaces and line breaks)
    897     ... so that comparisons with optci are easy e.g. through vimdiff
    898    
    899 == 11/02/2013 == JL
    900 - Updated moist convection scheme to handle situations with a large water vapor content
    901 - Added a keyword to enable ocean runoff in callphys.def (activerunoff)
    902 
    903 == 12/02/2013 == JL
    904 - Follows previous commit by Aymeric about bilinear interpolations:
    905    - Extended to all existing continua
    906    - generalized bilinearbig to work for various size inputs
    907 - because N2 and H2O continua databases are smaller, improvement around 15% for
    908 an earth case.
    909  
    910 == 25/02/2013 == EM
    911 - added "-fp-model precise" option when compiling with ifort (fixes unexplained
    912   mass loss of tracer in the dynamics)
    913  
    914 == 13/03/2013 == AS + EM
    915 - corrected a bug in bilinearbig (found with debug mode)
    916   not harmful but possible -1 index at first call
    917 
    918 == 18/03/2013 == EM
    919 - removed the "-static" ifort compilation option (problematic on Gnome cluster)
    920   and added some additional debug options
    921 - fixed bug in newstart about initialization of albedo and thermal inertia.
    922 
    923 == 28/03/2013 == JL
    924 - optimization of optci and optcv routines. 15to 25% gain on these routines.
    925      around 10% on the whole code with 1 scatterer.
    926      - No changes on output (byte to byte)
    927 - corrected bug in gray case in callcorrk.
    928 - added profiling option in makegcm_ifort. See the file for details
    929 - changed capcal back to default in physics
    930 
    931 == 01/05/2013 == AS + JL
    932 - added possibility to remove surface
    933   (particularly exchanges heat+momentum exchanges between surface and atmosphere)
    934 - added possibility to add an internal heat flux
    935 
    936 == 10/05/2013 == EM
    937 - moved the 'makbands' script from "grid" to (more appropriate) "phystd/bands"
    938   subdirectory, and consequently adapted the makegcm_* scripts
    939 
    940 == 15/05/2013 == JL
    941 - correction in radiative scheme to enforce double precision
    942 - corrects calculation of ISR
    943 
    944 == 22/05/2013 == EM
    945 - made all outputs (stats.nc,diag*nc files) compatible with running in parallel
    946   (MPI mode only)
    947 
    948 == 11/06/2013 == JL+EM
    949 - User manual (+ sources) added in DOC.
    950 
    951 == 12/06/2013 == EM
    952 - Moved "newstart" (and related "lect_start_archive.F") to phystd directory
    953 - Adapted makegcm_* scripts to enable compiling main prog from physics
    954 - Added in newstart the possibility to not read in any surface.nc file
    955   (when loading a start_archive) with keyword "none" (instead of surface
    956   file name)
    957 - Some general cleanup:
    958   - in bibio: removed unused lmdstd.h readstd.F writestd.F mywrite.F
    959               readcoord.F scatter.F gather.F ini36.F from36.F to36.F
    960               lnblnk.F (F90 len_trim() should be used instead)
    961   - in dyn3d: removed unused inigrads.F wrgrads.F gradsdef.h
    962               xvik.F (specific to current Mars)
    963 
    964 == 14/06/2013 == EM
    965 - Some minor changes so that gcm compiles with gfortran:
    966   - Added option to compile "long lines" (>132 characters) in makegcm_gfortran
    967   - Removed use of isnan() in physiq.F90 (it is not a standard function)
    968   - Avoid possible underflow of psat in watercommon_h.F90
    969   - Adapted the checks on the *IR and *VI band files to be more strict
    970 
    971 == 17/06/2013 == EM
    972 - Some more cleanup in dynamics:
    973  - Moved "start2archive" (and auxilliary routines) to phystd
    974  - removed unused (obsolete) testharm.F , para_netcdf.h , readhead_NC.F ,
    975    angtot.h from dyn3d
    976  - removed obsolete addit.F (and change corresponding lines in gcm)
    977  - remove unused "description.h" (and many places where it was "included")
    978 
    979 == 21/06/2013 == AS
    980 - Added possibility to initialize temperature from a rcm1d profile (t=profile)
    981 - Added output for Ls in diagfi
    982 
    983 == 28/06/2013 == JL
    984 - bug fix in setspi & setspv : counters must be initialized in routine in
    985   case of multiple calls
    986 
    987 == 02/07/2013 == EM
    988 - some cleanup: ismax and ismin were defined in multiple places...
    989 
    990 == 19/07/2013 == EM
    991 - update the sponge layer: trun it into a module and (more important)
    992   compute the sponge quenching analytically rather than via Forward Euler
    993   approximation.
    994 
    995 == 07/08/2013 == JL
    996 - Water cycle in double precision (largescale+moistadj)
    997 - Improved wate rayleigh.
    998 - First step for rayleigh with variable species. Now, just need to change optcv.
    999 - changed some interpolation indices in callcorrk to limit dependency of OLR on the number of layers
    1000 
    1001 == 05/12/2013 == JL
    1002 - corrected sugascorrk to work in the two band gray aproximation with -b 1x1 and NGAUSS=2
    1003 
    1004 == 03/04/2014 == EM
    1005 Major cleanup, in order to ease the use of LMDZ.GENERIC with (parallel) dynamics
    1006 in LMDZ.COMMON: (NB: this will break LMDZ.UNIVERSAL, which should be thrashed
    1007 in the near future)
    1008 - Updated makegcm_* scripts (and makdim) and added the "-full" (to enforce
    1009   full recomputation of the model) option
    1010 - In dyn3d: converted control.h to module control_mod.F90 and converted
    1011   iniadvtrac.F to module infotrac.F90
    1012 - Added module mod_const_mpi.F90 in dyn3d (not used in serial mode)
    1013 - Rearanged input/outputs routines everywhere to handle serial/MPI cases.
    1014   physdem.F => phyredem.F90 , phyetat0.F => phyetat0.F90 ; all read/write
    1015   routines for startfi files are gathered in module iostart.F90
    1016 - added parallelism related routines init_phys_lmdz.F90, comgeomphy.F90,
    1017   dimphy.F90, iniphysiq.F90, mod_grid_phy_lmdz.F90, mod_phys_lmdz_mpi_data.F90,
    1018   mod_phys_lmdz_mpi_transfert.F90, mod_phys_lmdz_omp_data.F90,
    1019   mod_phys_lmdz_omp_transfert.F90, mod_phys_lmdz_para.F90,
    1020   mod_phys_lmdz_transfert_para.F90 in phymars
    1021   and mod_const_mpi.F90 in dyn3d (for compliance with parallelism)
    1022 - added created generic routines 'planetwide_maxval' and 'planetwide_minval',
    1023   in module "planetwide_mod", that enable obtaining the max and min of a field
    1024   over the whole planet. This should be further imroved with computation of
    1025   means (possibly area weighed), etc.
    1026 
    1027 == 05/06/2014 == EM
    1028 Bug fixes:
    1029 - hice() in physiq.F90 must be a saved array.
    1030 - bad use of min/max on arrays in h2o_cloudrad (radii_mod.F90) which actually
    1031   ended up setting all array elements to the same value.
    1032 And some cosmetic cleanup in rain.F90, vdif_kc.F and turbdiff.F90
    1033 
    1034 == 10/07/2014 == EM
    1035 Some cleanup to simplify dynamics/physics interactions by getting rid
    1036 of dimphys.h (i.e. the nlayermx parameter) and minimizing use of
    1037 dimension.h in the physics.
    1038 
    1039 == 11/07/2014 == EM
    1040 - Changed the variable passed from LMDZ.GENERIC dynamics to physics:
    1041 it is now a mass flux (kg/s) which is then converted to a vertical
    1042 velocity (m/s) in the physics. This is to be consistent with what is
    1043 done in LMDZ.COMMON.
    1044 
    1045 == 18/08/2014 == JL
    1046 - fixed variable type declaration bug in ave_stelspec
    1047 - corrected insolation calculation in locked and inclined case (proper calculation of sub solar longitude and declination)
    1048 - in the ring shadow calculation, temporary variables for the orbbital parameters are now used (we want the declin and RA output at the same time w and wo rings)
    1049 
    1050 == 29/09/2014 == EM
    1051 - Added missing allocation in soil_settings, needed when changing number of
    1052   soil layers.
    1053 
    1054 == 04/03/2015 == EM
    1055 - Some code cleanup: turning comcstfi.h into module comcstfi_mod
    1056 
    1057 == 31/03/2015 == EM
    1058 - Reorganizing the physics/dynamics interface, for better compatibility
    1059   between models and with the parallel LMDZ.COMMON dyn core. Main structural
    1060   changes are:
    1061 * misc: (replaces what was the "bibio" directory)
    1062 - Should only contain extremely generic (and non physics or
    1063   dynamics-specific) routines
    1064 * dynlonlat_phylonlat: (new interface directory)
    1065 - This directory contains routines relevent to physics/dynamics grid
    1066   interactions, e.g. routines gr_dyn_fi or gr_fi_dyn and calfis
    1067 - Moreover the dynlonlat_phylonlat contains directory "phystd".
    1068   This subdirectories should only contain specific interfaces (e.g.
    1069   iniphysiq) or main programs (e.g. newstart).
    1070 * phystd/dyn1d: this subdirectory contains the 1D models.
    1071 
    1072 == 17/04/2015 == JL & SG
    1073 - Correct radiative transfer bug for the Top layer in callcorrk (=rev 1419). Only impacts plevrad(2).
    1074 == 04/05/2015 == SG
    1075 - Return to a previous interpolation scheme for pmid and tmid in callcorrk.
    1076 
    1077 == 16/09/2015 == EM
    1078 - reorganizing the "datadir" structure: aerosol properties should now be in
    1079   subdirectory 'aerosol_properties' of datadir, and surface.nc files should
    1080   be in subdirectory 'surface_data'. These subdirectory names are stored in
    1081   module datafile_mod.
    1082 - Made things retro-compatible so that using an 'old' datadir structure (ie.
    1083   aerosol properties files and surface files in datadir) still works.
    1084 
    1085 == 21/09/2015 == MT
    1086 - Cleanup of physiq.F90 and changed condense_cloud.F90 to condense_co2.F90
    1087 
    1088 == 14/10/2015 == MT
    1089 - Implementation of the Spectral Albedo. Albedo(ngrid) is now Albedo(ngrid,L_NSPECTV) and has a value for each visible band.
    1090 - Albedodat/Albedo0 have been removed. We now use Albedo_bareground.
    1091 - CO2 Ice Albedo North/South dichotomy has been removed. CO2 ice Albedo is no longer stocked in start file. You can now
    1092 prescribe CO2 ice albedo in callphys.def with "albedoco2ice". Its default value is 0.5.
    1093 
    1094 == 14/10/2015 == MT
    1095 - Cleanup of callcorrk.F90.
    1096 
    1097 == 15/10/2015 == MT
    1098 - Harmonization of the calculation of the surface tracer tendencies in physiq.F90.
    1099 
    1100 == 22/10/2015 == MT
    1101 - Cleaning of condense_co2.F90.
    1102 
    1103 == 04/11/2015 == MT
    1104 - Corrections of bugs in phyetat0.F90 (vap tracer) and in physiq.F90 (ice evolution scheme).
    1105 
    1106 == 05/11/2015 == MT
    1107 - Minor Albedo correction of bugs in rcm1d.
    1108 
    1109 == 13/11/2015 == MT
    1110 - Spectral Snow Albebdo implemented in the code.
    1111 
    1112 == 13/01/2016 == EM
    1113 - Fix/improvement on planetwide_min/max/sum for the 3D fields which assumed the vertical dimension to be klev.
    1114   Now works for any (klon,...) field (e.g. albedo).
    1115 
    1116 == 10/02/2016 == MT
    1117 - Added a generic routine (in utilities directory) to extrapolate ice fields.
    1118 - Added a generic version of streamfunction (in utilities directory).
    1119 
    1120 == 17/03/2016 == EM
    1121 - Added tests to ensure that soil model settings are adequate to resolve
    1122   sub-surface diurnal and annual thermal waves.
    1123 
    1124 == 24/03/2016 == EM
    1125 - Some fixes/adjustments to run using OpenMP (in the physics, best practice is to always have "save" variables,
    1126   this of course includes all module variables, as "threadprivate").
    1127 
    1128 == 25/03/2016 == EM
    1129 - Code reorganization (to mach comming evolutions on all planetary models),
    1130   created a "phy_common" directory to contain routines common (wrt structural
    1131   nature of underlying code/grid) to all LMDZ-related physics packages.
    1132 - Moved ioipsl_getincom_p.F90 from "misc" to "phy_common" and modified it
    1133   to match Earth GCM version and renamed it ioipsl_getin_p_mod.F90
    1134 - Adapted calls from phystd/* routines accordingly
    1135 - Adapted "create_make_gcm" and "makegcm*" scripts accordingly
    1136   (deleted obsolete makegcm_g95)
    1137 
    1138 == 28/03/2016 == EM
    1139 - Added module "regular_lonlat_mod.F90" (to store information on global
    1140   lon-lat grid) in phy_common.
    1141 - Turned iniphysiq (in dynlonlat_phylonlat/phymars)into module
    1142   "iniphysiq_mod.F90".
    1143 
    1144 == 29/03/2016 == EM
    1145 - Added "time_phylmdz_mod.F90" module to store information on time and
    1146   calendar in the physics, should be used instead of accessing "temps_mod"
    1147   from the dynamics. And moved daysec and dtphys from module "comcstfi_mod"
    1148   to module "time_phylmdz_mod".
    1149 - made "inifis" a module.
    1150 
    1151 == 30/03/2016 == EM
    1152 - Got rid of references to "control_mod" from the physics. Added a couple
    1153   of relevent variables for outputs in time_phylmdz_mod.
    1154 
    1155 == 05/04/2016 == EM
    1156 - Got rid of references to "dimensions.h" from physics packages:
    1157   use nbp_lon (=iim), nbp_lat (=jjp1) and nbp_lev
    1158   from module mod_grid_phy_lmdz (in phy_common) instead.
    1159 - Removed module "comhdiff_mod.F90", as it is only used by module
    1160   surf_heat_transp_mod.F90, moved module variables there.
    1161 - Added in "surf_heat_transp_mod" local versions of some arrays
    1162   and routines (from dyn3d) required to compute gradient, divergence, etc.
    1163   on the global dynamics grid.
    1164   As before, the slab ocean only works in serial.
    1165 
    1166 == 07/04/2016 == EM+MT
    1167 - Fix buggy ouputs in 1D introduced by previous code modifications.
    1168 
    1169 == 07/04/2016 == MT
    1170 - In rcm1d.F (1d model), tracers profiles added in input.
    1171 
    1172 == 08/04/2016 == EM
    1173 - Adapted rcm1d.F so that it also runs when compiled from LMDZ.COMMON.
    1174 
    1175 == 08/04/2016 == EM
    1176 - Bug fix in surf_heat_transp_mod (introduced with revision 1529, 05/04/2016, modifications).
    1177 - Initialize runoff in hydrol.F90.
    1178 
    1179 == 08/04/2016 == EM
    1180 - Made nsoilmx be no longer a "parameter" and thus added the possibility to define the
    1181   number of subsurface layers nsoilmx, along with first layer thickness "lay1_soil" and
    1182   companion coefficient "alpha_soil", in callphys.def at run time.
    1183   As before (when these were hard-coded), these are such that the depth of
    1184   soil mid-layers are:
    1185   mlayer(k)=lay1_soil*alpha_soil**(k-1/2), for k=0,nsoil-1
    1186 
    1187 == 13/04/2016 == EM
    1188 - Some code reorganization: "dynlonlat_phylonlat" directory becomes
    1189   "dynphy_lonlat".
    1190 - "iniprint.h" moved from "dyn3d" to "misc".
    1191 
    1192 == 18/04/2016 == EM
    1193 - fix for 1D in writediagfi to enable writing at
    1194   "ecritphy" rate.
    1195 - move iniprint.h to "misc"
    1196 - Some code cleanup in anticipation of future updates:
    1197  - changed variable names in comgeomphy.F90: give them more
    1198    explicit names: rlond => longitude ,
    1199    rlatd => latitude, airephy => cell_area,
    1200    cuphy => dx , cvphy => dy
    1201  - removed long(), lati() and area() from comgeomfi_h.F90,
    1202    use longitude(), latitude() and cell_are() from
    1203    comgeomphy.F90 instead
    1204 
    1205 == 22/04/2016 == EM
    1206 - Updates and cleanup wrt dynamics/physics separation:
    1207   Removed init_phys_lmdz.F90 and comgeomphy.F90 from phystd;
    1208   comgeomphy is replaced by geometry_mod (located in phy_common).
    1209   Added physics_distribution_mod.F90 in phy_common and
    1210   mod_interface_dyn_phys.F90 in dynphy_lonlat.
    1211   Added nrtype.F90 (contains math const. like PI, etc.) in "misc"
    1212 
    1213 == 02/05/2016 == JL+EM
    1214 - bug fix in calfis: wrong array (pw) sent to physics: the transfered
    1215   mass flux should be on the physics grid, not the dynamics grid.
    1216   Moreover values at the poles needed to be correctly recomputed.
    1217 
    1218 == 06/05/2016 == EM
    1219 - turn physiq.F90 into module physiq_mod.F90
    1220 
    1221 == 20/05/2016 == AS+EM
    1222 - cleanup around iniphysiq: separate things between planet-independent
    1223   initializations (now done by inigeomphy in dynphy_lonlat) and
    1224   mosre physics-package specific things (remain in iniphysiq).
    1225 
    1226 == 20/05/2016 == EM
    1227 - Fix in wstats: use "def_var_stats" and not "def_var" (intended for
    1228   writediagfi).
    1229 
    1230 == 27/05/2016 == EM
    1231 - missing libf/dynphy_lonlat/phymars/inigeomphy_mod.F90 in updates around
    1232   iniphysiq
    1233 
    1234 == 12/07/2016 == EM
    1235 - move initialization of dimphy from inigeomphy to iniphysiq (initializations
    1236 related to routines in phy_common or dynphy_lonlat can be done in
    1237 inigeomphy, but any initialization for modules/routines in a physics
    1238 package (directory phystd) must be done in the related phystd/iniphysiq
    1239 routine.
    1240 
    1241 == 27/07/2016 == EM
    1242 - further cleanup in the dynamics/physics interface: stop sending information
    1243   about tracer advection (tracerdyn) back from physics to dynamics as this
    1244   input parameter can be read and set in the dynamics.
    1245 
    1246 == 30/08/2016 == EM
    1247 - fix newstart which was broken due to recent updates of the physics/dynamics
    1248   interface.
    1249 
    1250 == 09/09/2016 == EM
    1251 - Some code cleanup (and harmonization with LMDZ.COMMON): remove "ecritphy"
    1252   from the dynamics (since it is read/used in the physics) and remove
    1253   "grireg" (unused) and "physic" (use iflag_phys instead) parameters from
    1254   the dynamics.
    1255 
    1256 == 13/09/2016 == EM
    1257 - Further cleanup to harmonize with LMDZ.COMMON turn "idissip" into
    1258   "dissip_period".
    1259 
    1260 == 15/09/2016 == TB
    1261 - bug fix in tpindex.F : when computing weights for abundance of species one
    1262   should not return the maximum index (leads to out-of-bounds index use in
    1263   the caller).
    1264 
    1265 == 25/10/2016 == EM
    1266 Updates for full physics/dynamics separation:
    1267 - introduced module vertical_layers_mod.F90 in phy_common to store information
    1268   about the vertical grid to be used in the physics. Routines in the physics
    1269   should "use vertical_layers_mod" and not "use comvert_mod".
    1270 - added nqtot to tracer_h.F90. Always "use tracer_h" in physics instead of
    1271   infotrac (which is in the dynamics).
    1272 - removed some purely dynamics-related outputs (etot0, zoom parameters, etc.)
    1273   from diagfi.nc and stats.nc outputs as these informations are not available
    1274   in the physics.
    1275 - added scalheight (atmospheric scale height) in comvert_mod.
    1276 
    1277 == 31/10/2016 == EM
    1278 Introducing a first prototype of XIOS outputs: requires compiling with
    1279 "-io xios" flag and having an XIOS library at hand. Corresponding
    1280 companion xml files iodef.xml and context_lmdz_physics.xml in the "deftank"
    1281 subdirectory. Still some work to do concerning the XIOS calendar (definition
    1282 of an initial date and month number and lenght).
    1283 
    1284 == 21/02/2017 == EM
    1285 Added possibility to run without a startfi.nc file (mainly usefull for
    1286 tests with coupling with dynamico dynamical core):
    1287 - added flag "startphy_file" flag (.false. if doing an "academic" start
    1288   on the physics side).
    1289 - turned phyetat0.F90 into module  phyetat0_mod.F90
    1290 - turned tabfi.F into module tabfi_mod.F90 and added handling of
    1291   startphy_file==.false. case
    1292 - extra initializations in physiq_mod for startphy_file==.false. case.
    1293 
    1294 == 09/03/2017 == EM
    1295 >> Followup on updates in LMDZ.COMMON, add print_control_mod.F90
    1296    and abort_physic.F90 inphy_common
    1297 
    1298 == 30/03/2017 == EM
    1299 >> Keep up with updates in LMDZ.COMMON:
    1300 In phystd:
    1301 - ocean_slab_mod.F90 : call abort_physic, rather than abort_gcm
    1302 - inifis_mod.F90 : initialize print_control variables
    1303 - physiq_mod.F90 : add XIOS context initialization and finalization
    1304 - xios_output_mod.F90 : update initialize_xios_output initialization
    1305                         of the horizontal domain
    1306 In dynphy_lonlat :
    1307 - inigeomphy_mod.F90 : add ind_cell_glo computation and  transfer
    1308                        to init_geometry
    1309 - mod_interface_dyn_phys.F90 : use is_north_pole_dyn and is_south_pole_dyn
    1310                                (instead of is_north_pole, is_south_pole)
    1311 
    1312 In phy_common:
    1313 - geometry_mod.F90 : add ind_cell_glo module variable to store global
    1314                      column index
    1315 - init_print_control_mod.F90 : added to initialize print_control_mod module
    1316                                variables
    1317 - print_control_mod.F90 : make initialization occur via init_print_control_mod
    1318                           to avoid circular module dependencies
    1319 - mod_phys_lmdz_mpi_data.F90 : use print_control_mod (rather than iniprint.h)
    1320                                and define is_north_pole_dyn, is_south_pole_dyn
    1321                                (instead of is_north_pole, is_south_pole)
    1322 - mod_phys_lmdz_mpi_transfert.F90 : use is_north_pole_dyn, is_south_pole_dyn
    1323                                     (instead of is_north_pole, is_south_pole)
    1324 - mod_phys_lmdz_omp_data.F90 : add is_omp_master (alias of is_omp_root) module
    1325                                variable and use print_control_mod (rather than
    1326                                iniprint.h), and introduce is_north_pole_phy
    1327                                and is_south_pole_phy
    1328 - mod_phys_lmdz_para.F90 : use print_control_mod (rather than iniprint.h)
    1329 - physics_distribution_mod.F90 : add call to init_dimphy in
    1330                                  init_physics_distribution
    1331 
    1332 == 07/04/2017 == EM
    1333 Fixing a big bug (dating from revision 1529) in wstats.
    1334 
    1335 == 14/04/2017 == JL+EM
    1336 Fixed a bug in start2archive: missing initialization of tracer names.
    1337 <<<<<<< .mine
    1338 
    1339 == 21/04/2017 == JL
    1340 Add some arch files for a cluster in Bordeaux
    1341 added some is_master before printouts in callcorrk and physiq_mod
    1342 corrected a bug in bilinear big
    1343 
    1344 == 16/11/2017 == AS
    1345 Added surfalbedo and surfemis keywords to be used with startphy_file = .false.
    1346 Also made default values in phyetat0_mod unambiguously float
    1347 
    1348 == 07/06/2017 == MT
    1349 Resurrection of kcm1d, part I
    1350 
    1351 == 21/07/2017 == JVO
    1352 Optimization of the optci/cv routines
    1353  - The repeated calls to huge matrices gasi/v increased dramatically the execution time because of memory access
    1354  - Added a tmpk variable
    1355  - Save ~ 50% time on the RT, ~30% on the whole code on the tested simulations
    1356 
    1357 == 14/09/2017 == MT
    1358 Add qs=x option to newstart.F (chose a specific value to a surface tracer)
    1359 Add Proxima Centauri and TRAPPIST-1 spectra
    1360 Add scripts to read (in python) and modify (in fortran 90) the correlated-k files
    1361 
    1362 == 02/01/2018 == EM
    1363 Fix som recently introduced problems:
    1364 - inichim_1D is used by the 1D model and should be in the libf/dyn1d directory
    1365 - inichim_newstart is used by newstart and should be in the
    1366   libf/dynphy_lonlat/phystd directory
    1367 - dtridgl.F already exists in libf/phystd
    1368 - fix rcm1d.F to cope with modifications introduced in revision 1835-1836
    1369 - also add some missing threadprivate OpenMP directives in phys_state_var_mod
    1370   and turb_mod
    1371 
    1372 == 31/07/2018 == EM
    1373 Follow-up of change in maximum length of tracer names in the dynamics
    1374 
    1375 == 28/08/2018 == JL
    1376 Start a series of commits to change the upper boundary conditions in the radiative transfer to solve some issues with the last two layers.
    1377 It seems to be good to have aerosols in the first "radiative layer" of the gcm in the IR but visible does not handle very well diffusion in first layer.
    1378 Tauaero and tauray are set to 0 (a small value for rayleigh because the code crashes otherwise) in the 4 first semilayers in optcv, but not optci.
    1379 This solves random variations of the sw heating at the model top.
    1380 
    1381 == 28/08/2018 == JL
    1382 We now shift the radiative model top from p=0 to the middle of the last physical layer. This is done by changing pmid and plevrad in callcorrk and some corrections need to be done in gfluxv.
    1383 This seems to get rid of the aratic temperature behavior in the last two layers of the model (especially on the night side on synchronous planets).
    1384 Additional speedup corrections have been made in gfluxi that change nothing to the result.
    1385 Finally, if aerosols are present in the last layer we must account for them. Provides better upper boundary condition in the IR. They must however be put to zero in the sw (see optcv and changes in last commit.)
    1386 This has been done for water ice in aeropacity, but same correction should probably be done for other aerosol types.
    1387 
    1388 == 28/08/2018 == JL
    1389 correct bug on rain initialization at each timestep in physiqu_mod so that mass_redist can work without rain (if precipitations are taken care with sedimentation for example)
    1390 change a table that was used as a float to a float in gfluxv for speedup. Does not change results bit for bit
    1391 
    1392 == 29/08/2018 == JL
    1393 -watersat was used only in vdifc and thus it was not consistent with other routines (turbdiff, rain, largescale...) which used Psat_water from watercommon.
    1394 This is now harmonized. ALl routines use Psat_water. Watersat.F has been removed, but the routine is now in watercommon for archival purpose. It is not used anymore.
    1395 -also changed the number of chars for tname in the dyn3D/infotrac.F90 to be able to run rcm1d.
    1396 
    1397 == 02/10/2018 == JL
    1398 - correct a bug introduced in commit 1987 in optcv.
    1399 
    1400 == 30/10/2018 == EM
    1401 - correct a bug introduced in revision 2026; now that L_NGAUSS is a parameter
    1402   read in via sugas_corrk (called at first call by callcorrk), automatic arrays
    1403   of size L_NGAUSS cannot be declared in callcorrk and must be allocated
    1404   once the value of L_NGAUSS has been set.
    1405 - turned optci, optcv and callcorrk into modules in the process.
    1406 
    1407 == 30/10/2018 == EM
    1408 - Cleanup around aeroptproperties.90, remove arrays that were not initialized
    1409   but still used, probably for nothing since removing them leads to no change
    1410   in results. Possibly to revisit and further clean up later.
    1411 
    1412 == 12/12/2018 == JL
    1413 - Correct a bug from commit 2032 in callcorrk: automatic arrays must be allocated
    1414 only if they haven't been before (callcorrk is called twice in physiq when cloud cover is not uniform).
    1415 
    1416 == 21/12/2018 == MT
    1417 - Officially add a CECILL licence to the LMD Generic GCM. The licence is the same than in the LMDz Earth GCM.
    1418 
    1419 == 07/01/2018 == AB
    1420 - Planck step function is replaced by a piecewise linear function in gfluxi.F and sfluxi.F
    1421   in the computation of B1, B0, PLTOP, PLANCKSUM and BSURF.
    1422 
    1423 == 09/01/2018 == AB
    1424 - Add the thermal plume model (cf. Rio et al. 2010) extended to gas giant. Specific parameters are set in thermcell_mod.
    1425 - Add keys (back2lay_visname, back2lay_irname) to set aeroback2lay aerosol optprop files names and solve the name conflict between Saturn and Jupiter.
    1426   Default values are the previously hard coded values.
    1427 
    1428 == 10/01/2018 == AB
    1429 - Fix a bug in thermcell_closure arguments.
    1430 
    1431 == 11/01/2018 == AB
    1432 - in thermcell_plume, replace a useless test on zalpha by a test on zw2m to avoid a possible division by zero.
    1433 - in thermcell_plume, remove useless variable zbuoybis
    1434 - in physiq_mod, save variable f0
    1435 
    1436 == 14/01/2018 == AB
    1437 - Fix f0 saving
    1438 - Restore d_temp functionality. d_temp is set in thermcell_mod and used in thermcell_alim.
    1439 - Remove a potential division by zero in thermcell_plume with variable zw2m.
    1440 
    1441 == 14/01/2018 == AB
    1442 - add comment in README for revisions 2066 and 2067
    1443 - allocate f0 only if calltherm=true
    1444 - remove useless flag "iflag_thermals_alim" in thermcell_alim, thermcell_mod and thermcell_plume
    1445 - replace watersat subroutine by Psat_water in the thermal plume model, cf. revision 1993 or 29/08/2018 JL comment.
    1446 
    1447 == 07/02/2018 == AB
    1448 - uncomment two "corrections" in thermcell_flux. They are used only if iflag_thermals_optflux is set to 0 (1 by default)
    1449 - remove useless parameter fact_shell in thermcell_mod
    1450 - now take d_temp into acocunt in thermcell_plume to trigger the plume and compute first unstable layer speed.
    1451 
    1452 == 15/02/2018 == AB
    1453 - Fix a bug in thermcell_alim.F90 where loops were inverted.
    1454 - In thermal plume model, arrays size is set with ngrid,nlay arguments, no longer thanks to dimphy module.
    1455 - Remove useless variable zmax0 in thermcell_main, thermcell_height and physiq_mod.
    1456 - Some minor changes in thermcell_plume and thermcell_main.
    1457 
    1458 == 18/02/2018 == AB
    1459 - use detr as thermcell_dq argument (called in thermcell_main) and clean up thermcell_dq.
    1460 - fix a bug in thermcell_flux with lmax.
    1461 - fix a bug in thermcell_flux when updraft fraction is too high.
    1462 - add new correction in thermcell_flux when entrainement is too high.
    1463 - evaporate ice before calling thermal plume model
    1464 
    1465 == 26/02/2019 == AB
    1466 - now convective adjustment can be used for layers beyond thermals
    1467 
    1468 == 05/03/2019 == EM
    1469 - some fixes for the slab ocean. Still need to make it work in parallel.
    1470 
    1471 == 26/03/2019 == AB
    1472 - new formulae to compute vertical speed in thermcell_plume
    1473 - fix an inconsistency in zdttherm and zdqtherm computation according to water key value in physiq_mod
    1474 
    1475 == 29/04/2019 == AB
    1476 - fix in convadj.F
    1477 - new version of the thermal plume model (new entrainment and detrainment, removed alimentation)
    1478 - removal of useless files thermcell_alp, thermcell_dv2, thermcell_alim and thermcell_dry.F90
    1479 
    1480 == 29/04/2019 == JVO
    1481 + Add diagnostics of optical thickness, if 'diagdtau' key is activated, it
    1482  outputs dtaui/v(altitude) in diagfi.nc for every narrowband (could be done with one var
    1483  but would require to be able to have writediag in 5D)
    1484  EDIT (22/05/19) : To have correct calculations, output is now exp(-tau), you need to postproc it to have tau.
    1485 
    1486 == 20/06/2019 == AB
    1487 - update the thermal plume model (check formulae consistency between thermcell_plume and thercell_closure,
    1488   compute correctly thermal plume height, fix alimentation computation in the first unstable layer)
    1489 - thermal plume model parameters are now set in callphys.def
    1490 - (re)add flag to choose between thermcell_dv2 or thermcell_dq to transport horizontal momentum.
    1491 
    1492 == 20/06/2019 == AB
    1493 - remove temporary outputs in thermcell_closure and fix a bug in thermcell_plume.
    1494 
    1495 == 12/11/2019 == AB
    1496 - fm0, entr0 and detr0 are now allocatable variables in physiq_mod. That is necessary if tau_thermals > 0.
    1497 - In thermcell_flux, "bidouilles" are modified: now the plumes stop when the updraft fraction is greater than alpha_max ;
    1498   e > e_max is no longer permitted ; b <= incoming mass flux is checked last
    1499 - Cleanup thermal plums model subroutines (thermcell_main, thermcell_env, thercell_dq, thermcell_dv2, thermcell_closure, thermcell_height)
    1500 - In thermcell_plume, restore initial formula to compute the vertical speed and cleanup the file
    1501 
    1502 == 29/01/2020 == AB
    1503 - clean up thermcell_dq
    1504 
    1505 == 30/01/2020 == AB
    1506 - fix a bug in thermcell_env. Now zqt is correctly initialized when tracer h2o_vap is missing (consistency with flag water is assumed).
    1507 - clean up thermcell_dv2 and use plume height (zmin-zmax) instead of maximal altitude (zmax) in computations
    1508 - the thermal plume model is able to manage several plumes in the same column and work without the convective adjustment.
    1509 
    1510 == 24/02/2020 (r2243) == JVO
    1511 - Get rid of the old 'sparadrap' in iniorbit.F assuming Mkm instead of AU if periastre or apostre gt 25, (otherwise Neptune is a pb)
    1512   Everybody should be using AU, that's all.
    1513 
    1514 == 24/02/2020 (r2245) == JVO
    1515 + Add a 'versH2H2cia' int key in callphys that allows two values (2011 or 2018) to
    1516   deal with updated HITRAN file (for interpolateH2H2.F90) from 2018 that includes the
    1517   H2H2 dimer from Fletcher et al. 2018, useful for giant planets.
    1518   Retrocompatibility is ok, default value to 2011.
    1519 
    1520 == 27/03/2020 == EM
    1521 - Cleanup OpenMP statements in callcorrk.F90 and also use "call abort_physic"
    1522   instead of "stop" or "call abort"
    1523 
    1524 == 07/04/2020 == EM
    1525 - Get rid of "zerophys"; modern Fortran syntax is better to initialize an
    1526   array.
    1527 
    1528 == 09/04/2020 (r2283) == JVO
    1529 + Set the temperature boundaries and step for Planck function
    1530   integration as input in callphys.def, for more flexibility.
    1531   + User can now set them by tplanckmin, tplanckmax and dtplanck
    1532   + Default values are a wide range 30-1500K
    1533   + Add a sanity check in callcorrk instead of leaving out-of-bounds planckir indexes.
    1534 
    1535 == 26/04/2020 (r2297) == JVO
    1536 Add a generic n-layer aerosol scheme to replace the former buggy 2-layer scheme as well as the hard-coded NH3 cloud.
    1537  It can be called using 'aeronlay=.true.' in callphys.def, and set the number of layers (up to 4) with 'nlayaero'.
    1538  Then, the following parameters are read as arrays of size nlayaero in callphys.def (separated by blank space)
    1539  
    1540 *aeronlay_tauref  (Optical depth of aerosol layer at ref wavelenght)
    1541 *aeronlay_lamref  (Ref wavelenght (m))
    1542 *aeronlay_choice  (Choice for vertical profile - 1:tau follows atm scale height btwn top and bottom - 2:tau follows it own scale height)
    1543 *aeronlay_pbot    (Bottom pressure (Pa))
    1544 *aeronlay_ptop    (Top pressure (Pa) - useful only if choice=1)
    1545 *aeronlay_sclhght (Ratio of aerosol layer scale height / atmospheric scale height  - useful only if choice=2 )
    1546 *aeronlay_size    (Particle size (m))
    1547 *optprop_aeronlay_vis  File for VIS opt properties.
    1548 *optprop_aeronlay_ir   File for IR opt properties.
    1549 
    1550 +Extra info :
    1551    + In addition of solving the bug from 2-layer it enables different optical properties.
    1552    + The former scheme are left for retrocompatibility (for now) but you should use the new one.
    1553    + See aeropacity.F90 for the calculations
    1554         + Each layer can have different optical properties, size of particle ...
    1555         + You have different choices for vertical profile of the aerosol layers :
    1556            * aeronlay_choice = 1 : Layer tau is spread between ptop and pbot following atm scale height.
    1557            * aeronlay_choice = 2 : Layer tau follows its own scale height above cloud deck (pbot).
    1558                                    In this case ptop is dummy and sclhght gives the ratio H_cl/H_atm.
    1559 
    1560    + The reference wavelenght for input optical depth is now read as input (aeronlay_lamref)
    1561    + Following the last point some comment is added in suaer_corrk about the 'not-really-dummy'ness of IR lamref..
    1562 
    1563 == 27/04/2020 (r2299) == DB
    1564 Add non-orographic gravity waves drag parameterization (Flott scheme adpated from the Earth GCM)
    1565  It can be called using 'calllott_nonoro=.true.' in callphys.def, and set the maximum value of the Eliassen-Plam flux 'epflux_max'.
    1566  Cumulated output fields are du_nonoro, dv_nonoro (winds tendency due to GW drag), east_gwstress and west_gwstress (stress profile in esatward and westward direction due to GW drag)
    1567  These variables are added in Xhisitns and start files.
    1568 
    1569 == 27/04/2020 (r2300) == DB
    1570 When using the "season=.false." option then the orbital parameters are frozen and set by day_ini which is stored in startfi.nc.
    1571 But at the end of the run "day_ini" written in the restartfi.nc file is updated to match current calendar evolution (to match dynamics), so in chained simulations orbital parameters in fact change with each new simulation...
    1572 Add a parameter to lock a no seasonal cycle simulation during restart.
    1573 One sets the initial day using 'season=.false.' and set 'noseason_day'. This commit fixed the tickets #42 on planeto tack
    1574 BE CARREFUL, there is a mistake in the previous commit message: it is actually SEASON=.FALSE.
    1575 
    1576 == 05/05/2020 (r2308) == JVO
    1577 Fix a nasty copy-paste bug from r2297 in n-layer aerosol scheme
    1578 
    1579 == 05/06/2020 == EM
    1580 Update start2archive/newstart programs to handle recently introduced
    1581 non-orographic GW variables in (re-)start files.
    1582 
    1583 == 09/06/2020 (r2340) == JVO
    1584 In addition to r2297, for the n-layer aerosol scheme, enables to set the particle size effective variance with aeronlay_nueff in callphys.def.
    1585 
    1586 == 09/06/2020 == EM
    1587 Major cleanup: remove obsolete compilation scripts (makegcm*) and old dynamical
    1588 core, as it is obsolete with respect to the one provide in LMDZ.COMMON.
    1589 
    1590 == 09/07/2020 == DB
    1591 Add kstar parameter to control kmin value (set value in the parameterization). kmin=1/lambda_max, to ensure the "subgrid scale" characteristic, we have to constrain the maximum GW's wavelength (lambda_max) by the size of the mesh. So, kmin=max(kstar, kmin prescribed value)
    1592 
    1593 == 21/10/2020 == YJ
    1594 Add possibility to read stellar spectra from input file in "ave_stelspec.F90" with option "startype==11" in "callphys.def".
    1595 Input file need to be in "datagcm/stellar_spectra/" and called in "callphys.def" by "stelspec_file=...".
    1596 File format have one and only one header line.
    1597 With this option you also need to specify in "callphys.def" "tstellar==..."
    1598 
    1599 == 03/11/2020 == EM + YJ
    1600 Bug fix on call arguments sent from physiq to vdifc (probably not as bad as
    1601 it sounds, as turbdiff is usually used instead of vdifc).
    1602 In the process turned vdifc into a module, as well as turbdiff,
    1603 for better control, and removed unused arguments.
    1604 
    1605 == 03/11/2020 == EM + YJ
    1606 Bug fix on mass_redistribution; argument rnat should be real, not integer.
    1607 Turned it into a mass_redistribution_mod module.
    1608 
    1609 == 24/11/2020 == YJ + JVO
    1610 Implementation of an option for a new reading process of "traceur.def"
    1611 Use "#ModernTrac-v1" flag as first line of "traceur.def" to use this option
    1612 Further details in "LMDZ.GENERIC/deftank/traceur.def.modern"
    1613 Bug fix in infotrac in latter commit 06/03/2020
    1614 
    1615 == 19/01/2021 == EM
    1616 Minor fixes:
    1617 - callcorrk: OLR_nu(:,:) and OSR_nu(:,:) should be initialized every call,
    1618              not just at the first call
    1619 - physiq: only compute dtaui and dtauv using CLFvarying contributions
    1620           if they are provided (i.e. if flag diagdtau is .true.)
    1621 
    1622 == 06/03/2021 == YJ
    1623 ModernTrac bug fix in infotrac from commit r2436 24/11/2020
    1624 Missing log message, see previous commit r2468
    1625 
    1626 == 08/03/2021 == YJ
    1627 global1d and szangle for 1D simulation moved from callcorrk to callkeys
    1628 to defined a consistent 1D sza in physiq_mod used also in chemistry
    1629 + typo
    1630 
    1631 == 16/03/2021 == AB
    1632 Commit the last changes in the thermal plume model which was waiting for one year.
    1633 
    1634 == 18/03/2021 == YJ
    1635 Clean convadj.F90 specific CO2 Mars convection
    1636 Add alb_ocean used in hydrol.F90 as option in .def files
    1637 Add kmixmin 1D minimum eddy mix coeff for turbdiff as rcm1d.def option
    1638 and comment lines to help coding specific eddy mix coeff in turbdiff with Earth example
    1639 
    1640 == 25/03/2021 == EM
    1641 Small fix on the reading/initialisation of Non orographic GW related fields
    1642 loaded by lect_start_archive
    1643 
    1644 == 25/03/2021 == GC
    1645 Move some variables defined in physiq to phys_state_var_mod where they are now
    1646 allocated and saved, which is important as they may not be filled or computed
    1647 at every physics time step (e.g. when radiative transfert is not called).
    1648 
    1649 == 25/04/2021 == EM
    1650 Code cleanup, remove unused routines in libf/dynphy_lonlat (those from
    1651 LMDZ.COMMON are used) and likewise make links to dynamics routines in "dyn1d"
    1652 point to LMDZ.COMMON routines
    1653 
    1654 ==12/05/2021 == MT + GC
    1655 - Update of the water continuum (H2O-H2O and H2O-AIR): MT_CKD v3.3
    1656 - New file in phystd/: interpolateH2O_self_foreign.F90
    1657 - New continua (H2O-AIR_continuum_MT_CKD3.3.cia and H2O-H2O_continuum_MT_CKD3.3.cia)
    1658 can be downloaded from  https://www.lmd.jussieu.fr/~lmdz/planets/LMDZ.GENERIC/datagcm/continuum_data/
    1659 - Now the water continnum is defined between 0.1 and 20000cm-1
    1660 - We also removed the old (obsolete) parameterizations (CKD and PPC) from the code
    1661 
    1662 ==16/06/2021 == MT
    1663 - Add the Surface SW spectrum in diagspecVI netcdf output file (useful as a diagnostic of surface radiation condition for e.g. habitability studies)
    1664 
    1665 == 05/07/2021 == YJ
    1666 Large update of the chemical modules
    1667 - Read chemical network from input files
    1668 - Init chemistry with ModernTrac
    1669 - Photolysis online calculation
    1670 
    1671 == 05/07/2021 == YJ + JVO
    1672 Adding k-coefficients mixing on the fly
    1673 Working with ModernTrac
    1674 
    1675 == 09/07/2021 == EM
    1676 Remove misleading comment [peri/apo]astron should be in AU, not Mkm.
    1677 
    1678 == 09/07/2021 == EM
    1679 Some OpenMP fixes in routines initracer.F, nonoro_gwd_ran_mod.F90,
    1680 phys_state_var_mod.F90 and sugas_corrk.F90
    1681 
    1682 == 21/07/2021 == YJ
    1683 Chemistry: one input file instead of three for the chemical network
    1684 Automatic detection of mono/bi-molecular or quadratic reactions
    1685 
    1686 == 31/08/2021 == GM
    1687 Fix in phyetat0, only call soil_settings if flag callsoil is true.
    1688 
    1689 == 09/11/2021 == GM+EM
    1690 Fixed bug in tpindex (for low temperatures, between first and second
    1691 reference temperatures, temperature was wrongly set to tref(1)).
    1692 The input temperature was also allowed to be modified by the routine,
    1693 which is probably not a good idea and no longer the case.
    1694 Took this opportunity to turn tpindex into a module.
    1695 
    1696 == 10/11/2021 == EM
    1697 Bug fix (concerns OpenMP only) in inifis. And some cleanup in the
    1698 output messages.
    1699 
    1700 == 17/11/2021 == YJ
    1701 Correct missing initialisation for k-coefficients mixing on the fly
    1702 
    1703 == 16/12/2021 == JL
    1704 Fixes and improvements in the Non-orographic GW scheme, namely:
    1705 - increments are not tendencies
    1706 - missing rho factor in EP flux computation
    1707 - missing rho at launch altitude
    1708 - changed inputs, because R and Cp are needed to compute rho and BV
    1709 
    1710 == 07/01/2022 == EM
    1711 Minor bug fix for the (rather specific) case when there is no surface and
    1712 inertiedat() is not defined.
    1713 
    1714 == 22/02/2022 == GM
    1715 Minor bug fix for aerave_new.F when input wavelenght in data file are in
    1716 descending order.
    1717 
    1718 == 30/03/2022 == GM
    1719 Major changes to CIA interpolation:
    1720 1) Add contribution from CH4 (H2-CH4,He-CH4,CH4-CH4) ;
    1721 2) Add some tests before interpolation for H2, He and CH4 ;
    1722 3) Add the possibility to choose between a normal or equilibrium ortho:para
    1723 fraction for CIA H2;
    1724 4) Change "strictboundH2H2cia" to the generic "strictboundcia" for H2,He,CH4.
    1725 It can be added for others CIA (N2,H,CO2...) if you want.
    1726 
    1727 == 03/08/2022 == EM
    1728 Some cleanup:
    1729 - remove top level obsolete "patch_large_domains" directory
    1730 - remove unused "watercaptag" field in the physics.
    1731 
    1732 == 03/08/2022 == LT + EM
    1733 Further seperation between dynamics and physics concerning tracers:
    1734 Tracer names are extracted from traceur.def via initracer.F90 and no
    1735 longer transfered from the dynamics to the physics
    1736 
    1737 == 19/10/2022 == LT
    1738 Initialisation of Radiative Generic Condensable Aerosols
    1739 We can activate the scheme by putting aerogeneric = # of aerosols in callphys.def. This is the only needed thing for activating the radiative effects. They must be tracer in modern tracer.def
    1740 Commented out the abort if we use more than 4 aerosols
    1741 Added reading of optprop files for Radiative Generic Condensable Aerosols
    1742 We use the same file for IR and VI channel. For now, only MnS, Cr,Fe and Mg2SiO4 can be read. If you want to add another specie, check the code, it is explained how to quickly do that (right above the Initializations)
    1743 Added radii calculation for Radiative Generic Condensable aerosols
    1744 Changed the hardcoded size of the totalemit array
    1745 The hardcoded size is now 1900 instead of 100 so we don't exceed the array size when working at high spectral resolution (very rare case)
    1746 Added opacity computation for Radiative Generic Condensable aerosols
    1747 We do this computation in the same fashion as what's performed on water and dust.
    1748 switch iniaerosol and initracer order, to prepare for the RGCS scheme
    1749 Needed to switch the order of initialization so we can use the RGCS scheme without the assumption that ice and vap tracer of the same specie are following each other in the traceur.def fil
    1750 The RGCS scheme: Now we can use this scheme to take into account radiative effect of a Generic Condensable Specie. One needs to add the keyword is_rgcs=1 to the ModernTraceur.def to activate the scheme + specify the number of aerogeneric specie in callphys.def. Also, one needs to go into suaer_corrk.F90 to add the Mie scattering file into the code for the specie you want. Currently, MnS, Fe, Cr, Mg2SiO4 are available. This has been tested on a Hot Jupiter case, might have issue in different configuration. Also, the numerical stability of the scheme is not guaranted when using strong scatterers such as silicates. Physical oscillations in the evaporation/condensation can occur, and need fixing. This will be for another commit.
    1751 
    1752 == 29/10/2022 == EM
    1753 Minor fix related to the RGCS scheme: when not using it, "iaero_generic(1)"
    1754 was tested although not defined; using tests on "aerogeneric" (number
    1755 of generic aerosols) works better.
    1756 
    1757 == 17/11/2022 == LT
    1758 Removed extrapolations in tpindex. If above Tmax or Pmax use the max value.
    1759 
    1760 == 23/11/2022 == GG
    1761 Add the possibility to include Venus-like aerosols (triggered by option
    1762 aerovenus=.true. in callphys.def); baseline is to use 5 distinct scatterers
    1763 but each may be turned on/off (via aerovenus1, aerovenus2, aerovenus2p,
    1764 aerovenus3, aerovenusUV flags which may be specified in callphys.def).
    1765 
    1766 == 04/01/2023 == MT
    1767 - Add the possibility to include CO2-H2 CIA opacity (based on Turbet et al. 2020, Icarus, Volume 346, article id. 113762)
    1768 - Add interpolateCO2H2 routine + updated associated RT routines
    1769 (Be careful, if you use the CO2-H2 CIA, to use the associated correlated-k table, with CO2 and H2, and not just CO2)
    1770 
    1771 == 04/01/2023 bis == MT
    1772 - Add the possibility to include CO2-CH4 CIA opacity (based on Turbet et al. 2020, Icarus, Volume 346, article id. 113762)
    1773 - Add interpolateCO2CH4 routine + updated associated RT routines
    1774 
    1775 == 23/01/2023 == EM
    1776 Some minor fixes:
    1777 - missing igas_CO2 in "use gases_h" in optci.F90, optcv.F90, sugas_corrk.F90
    1778 - handle case when moist adjustement is not called in physiq: some of its
    1779   outputs still need be set to zero as they are used later on.
    1780 
    1781 == 21/02/2023 == EM
    1782 Some cleanup in aerosol_mod.F90 : integrate "iniaerosol" in the module.
    1783 Also adapted kcm1d to follow up on recent code updates.
    1784 
    1785 == 21/02/2023 == EM
    1786 More code tidying: turn aeropacity, aeroptproperties, gfluxi, gfluxv,
    1787 sfluxi and sfluxv into modules.
    1788 
    1789 == 02/05/2023 == EM
    1790 Improve diagnostics given by callcorrk (get min/max over whole globe, not
    1791 just over the master domain).
    1792 While at it also moved "Nmix_co2" and "radfixed" from callkeys_mod to radii_mod
    1793 since they are only used in that module.
    1794 
    1795 == 05/05/2023 == EM
    1796 Fix a buggy behavior concerning H2O aerosol variance; aeroptproperties is not
    1797 designed to handle aerosol variance which is not constant, whereas h2o_reffrad
    1798 returns a variance which varies (between 0.09 and 0.13) with location and time.
    1799 Revert to a simpler setup where the H2O aerosol variance is uniform and set by
    1800 the user (nueff_iaero_h2o flag in callphys.def; default value 0.1)
    1801 Also added some "intent()" in optci arguments and increased length of string
    1802 to store varaible name in writediagfi.
    1803 
    1804 == 05/05/2023 == EM
    1805 Upgrade wstats following the Mars PCM one. It is now a module and there no
    1806 longer needs to have if (callstats) around a call to wstats as it managed
    1807 internally in the wstats routine.
    1808 In addition: wstats now looks for an (optional) stats.def file in the
    1809 directory where the GCM is run to know which variable should be included
    1810 in the stats.nc file. The stats.def ASCII file should simply contain
    1811 one variable name per line, in the same way as the diagfi.def file for
    1812 diagfi outputs. If there is no stats.def file then all variables sent to
    1813 wstats will be in the stats.nc file (which matches the behaviour prior to
    1814 this improvement).
    1815 
    1816 == 08/05/2023 == EM
    1817 Minor follow-up to r2957, since H2O aerosol variance is uniform in space
    1818 and time, no need to compute or print its min/max at each radiative time step.
    1819 
    1820 == 23/07/2023 == YJ
    1821 Chemistry: correction in photolysis online with level instead of layer
    1822 
    1823 == 04/10/2023 == YJ
    1824 Chemistry: correction missing initialisation
    1825 Add escape values in outputs
    1826 
    1827 == 11/10/2023 == YJ
    1828 Move mu0 (cosinus of solar zenith angle) calculation out of callrad
    1829 This was a issue for photochemistry because mu0 was updated only iradia times
    1830 
    1831 == 20/11/2023 == YJ
    1832 Add output for atmospheric escape fluxes at the top of the model,
    1833 available for any tracers, this is calculated in deposition routine.
    1834 Corection: add hydrology flag to calculate surface albedo used for the
    1835 radiative transfer in photolysis online calculation.
    1836 This was needed to be consistent with the way to calculate the surface albedo.
    1837 
    1838 == 31/01/2024 == NC
    1839 Small corrections to enable compilation with WRF4.
    1840 
    1841 == 08/02/2024 == EM
    1842 Code cleanup. Remove obsolete "sourceevol" option and related variables.
    1843 
    1844 == 16/02/2024 == EM
    1845 Cleanup in deftank:
    1846 - Update xml files: add missing variable definitions in field_def_physics.xml,
    1847   extract file_def_physics.xml from context_lmdz_physics.xml (and rename it
    1848   context_pcm_physics.xml)
    1849 - remove "executable property" for def files
  • trunk/LMDZ.GENERIC/changelog.txt

    r3220 r3222  
    18481848  context_pcm_physics.xml)
    18491849- remove "executable property" for def files
     1850
     1851== 16/02/2024 == EM
     1852Update/cleanup directory: make a user-oriented README and move its previous
     1853contents to changelog.txt which will from now on contain the log of changes.
     1854Add "datadir" and "startfiles" directories with instructions on how to obtain
     1855the reference ones from https://web.lmd.jussieu.fr/~lmdz/planets/
     1856
Note: See TracChangeset for help on using the changeset viewer.