Ignore:
Timestamp:
Apr 15, 2014, 4:57:48 PM (11 years ago)
Author:
aslmd
Message:

LMDZ.MARS. If not major, a quite important commit.

  1. No more SAVE,ALLOCATABLE arrays outside modules.

This is important to solve the nesting conundrum in MESOSCALE.
And overall this is good for the harmony of the universe.
(Joke apart, this is good for any interfacing task. And compliant with a F90 spirit).
Note that bit-to-bit compatibility of results in debug mode was checked.

  1. inifis is split in two : phys_state_var_init + conf_phys

This makes interfacing with MESOSCALE more transparent.
This is also clearer for LMDZ.MARS.
Before, inifis has two very different tasks to do.

  1. a bit of cleaning as far as modules and saves are concerned

Point 1

  • Removed SAVE,ALLOCATABLE arrays from

physiq, aeropacity, updatereffrad, soil

and put those in

dimradmars_mod, surfdat_h, tracer_mod, comsoil_h

and changed accordingly the initialization subroutines associated to each module.
Allocating these arrays is thus done at initialization.

Point 2

  • Created a subroutine phys_state_var_init which does all the allocation / initialization work for modules. This was previously done in inifis.
  • Replaced inifis which was then (after the previous modification) just about reading callphys.def and setting a few constants by conf_phys. This mimics the new LMDZ terminology (cf. LMDZ.VENUS for instance)
  • Bye bye inifis.

Point 3

  • Removed comdiurn and put everything in comgeomfi
  • Created a turb_mod module for turbulence variables (e.g. l0 in yamada4)
  • dryness had nothing to do in tracer_h, put it in surfdat_h (like watercaptag)
  • topdust0 does not need to be SAVE in aeropacity. better use sinlat.
  • emisref does not need to be SAVE in newcondens. made it automatic array.
  • Removed useless co2ice argument in initracer.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/README

    r1208 r1224  
    19481948  before such a GCM run, although 'q=profile' could be used too.
    19491949
     1950== 13/11/2013 == AS
     1951--> Added precompiling flag MESOSCALE around pressure modifications
     1952    done in revision 883. This makes the mesoscale model become crazy.
     1953
    19501954== 20/11/2013 == EM
    19511955- Correction: in physiq.F, move newcondens (CO2 condensation routine) so that
     
    20122016  Modified accordingly startfi and start_archive writing and reading routines.
    20132017
    2014 
     2018== 24/03/2014 == AS
     2019--> fixed a potential bug in thermal plume model because zlmax was computed both in thermcell_main_mars and calltherm_interface... so made it an OUT argument
     2020 of calltherm_interface. also: changed the name to limz. and added precompiling flags to avoid the use of planetwide in MESOSCALE. in MESOSCALE we just go hi
     2021gh enough (nlayer-5) and do not care about computational cost (although we certainly gain from not using MAXVAL).
     2022--> moved allocations upward in inifis. does not change anything for GCM, but make MESOSCALE modifications simpler, and overall make inifis better organized:
     2023 first allocations, then reading callphys.def file.
     2024--> added precompiling flags around lines that are both useless for MESOSCALE (notably I/O) and recently adapted to parallel computations in the GCM
     2025--> tidied up what is MESOSCALE vs. GCM in surfini
     2026
Note: See TracChangeset for help on using the changeset viewer.