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