############# GEMDM Model -- Version 3.3.0 ###############
                            May  30 2007


        Version 3.3.0 of the GEMDM dynamics is now ready and available 
        in directories:
              "$ARMNLIB/modeles/GEMDM_shared/v_3.3.0/RCS"
              "$ARMNLIB/modeles/GEMDM_shared/v_3.3.0/RCS_4DVAR"
	It is connected to RPN/CMC physics version 4.5 in directory:
	      "$ARMNLIB/modeles/PHY/v_4.5/RCS"    

############################################################################

MAIN FEATURES:


  There have been many significant changes in this version from the
  previous version (v_3.2.2, phy v_4.4) but it does not seem to change 
  the meteorological results dramatically except maybe for LAM
  configurations since the lateral boundary specification and blending
  have evolved to meet the requirements of the acid test with full physics. 
  This version will definitely not bit reproduce results of the v_3.2.2 on
  any configuration. It is connected to Physics version 4.5 so please refer 
  to the Physics release notes for details. This release is not targeted to
  any immediate operational use. Documentation on previous GEMDM releases 
  can be found in:

  http://notos.cmc.ec.gc.ca/mrb/rpn/eng/gemdm/gemdm.html

  or

  http://web-mrb.cmc.ec.gc.ca/mrb/rpn/eng/gemdm/gemdm.html

  This note is available in the website under Version Rel. Date at v_3.3.0

  Please note that there are additional files at this GEMDM website
  which are related to this version:
  "gem_settings.nml.txt" 
  "outcfg.out.txt"
  "configexp.cfg.txt"
  "namelists_conversion.txt"
  "phy_namelist"
  "newlamio.html" - available soon


#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+
  Changes that affect run time computation:
#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+

1) New physics package (v_4.5)
   Documentation of its namelist parameters is in phy_namelist

2) NEW LAM I/O 

(a)NEW LAM I/O(Auto-cascade): 
   This is a more efficient way of providing the lateral boundary conditions
   for the LAM configuration from a previous run. It has been imported from
   the latest version of MC2 (4.9.9) and is often referred to as the
   hollow cubes method. The basic idea is to inform a particular run
   of a target nested grid configuration in order to save on disk only the
   lateral boundaries surrounding that nested domain. This data is saved 
   at the low resolution of the current run to minimize the amount of
   data prepared to drive the nested run. That prepared data is then 
   fed back directly to the nested run without going through gemntr.Abs. 
   The required 3D interpolation will hence be performed in the 
   distributed memory environment (a lot faster). The hollow cube method
   is ON by default and it requires the user to choose a single grid
   rotation for both grids: i.e. no relative grid rotation between the driver
   run and the nested run. The file format used is simply unformatted Fortran
   files with names in the form 3df0[1/2]_[date] and/or bcs0[1/2]_[date] 
   that are written in the local subdirectory output/casc. 
   The form 3df02_[date] indicates that the data is written in solid (not
   hollow) cubes and it represents the data values after the physics timestep.
   The form 3df01_[date] indicates that the data is written in solid (not
   hollow) cubes and it represents the data values before the physics timestep.
   The form bcs0[1/2]_[date] indicates that the data is written in hollow cubes
   which means it can only be used for one pre-defined grid whereas the 3df
   files can be used for smaller pre-defined grids. 
   Use the namelist "Grdc" to define the target nested grid.
   As this data is written at the resolution of the previous run, the
   fields will be horizontally interpolated (function grid_to_grid_coef)
   and then vertically interpolated during the main model run.

(b)Old LAM I/O - piloting from analysis files ( writes BMF files).
   The BMF files from older GEMDM versions are actually 3D solid cubes 
   fields horizontally interpolated (ez package) from the lo-res analysis 
   and these were written out slowly for the main model run. These 
   large cubes are then read in and vertically interpolated by the 
   main model run.

(c)New LAM I/O - piloting from analysis files (writes 3DF or BCS files).
   This is taken from the idea of the "auto-cascade" runs. 
   The entry program GEMNTR has been adjusted to produce these same file
   formats from any input analysis on hybrid or eta levels. The program 
   will simply perform a grid rotation of the data (if required) and 
   will then output the data strictly covering the targeted LAM grid at 
   the horizontal resolution of the analysis data. The resolution of the 
   analysis data must be lower or equal to that of the targeted LAM grid.
   These files can be either "3DF" or "BCS" files depending on the
   option selected (Pil_bcs_hollow_L = .true. for the latter one).
   This new implementation does not handle analysis on pressure levels.

   Input analysis on pressure levels would force the entry program to
   produce BMF files. Setting the key: Pil_bmf_L=.true. would also
   force BMF files to be written.

   As a side effect of this implementation, the full acid test with physics
   has been completed with success. In order to fulfill that test, the data from
   the driver has to be provided in 2 states: i.e. a state immediately after the
   dynamic timestep (before the physics) and a state after the 
   physics like the previous implementatons.
   This need is strictly driven by the fact that the horizontal component of
   the wind are staggered (Arakawa C) with respect to the mass point where we
   actually run the physics.

3) New Formal Package Interfaces - itf_[package]_[name].ftn
   We now introduce the concept of more formal interfaces to different packages
   through the construction of itf_[package]_[name].ftn routines that will
   define the formal entry points to a particular package. So far we have
   identified 4 packages: "phy, chm, cpl, var". Three of them have been
   implemented: 
   itf_phy_[name].ftn(s), itf_chm_[name].ftn(s) and itf_cpl_[name].ftn(s).

   In order to connect to an entirely different physics package in the near
   future (CCCma), we have taken the opportunity to totally revamp the 
   physics interface by introducing the new routines labelled 
   itf_phy_[name].ftn. Note that the namelist &physics is now &physics_cfgs
   and has completely changed as it is read and configured by the physics 
   itself. This namelist demands the version and name of the physics package
   in the key PHY_PCK_VERSION='RPN-CMC_4.5'. Read the documentation in
   the document alphabetized "phy_namelist" for more information.
   There will be no more need for extensive calls to phyopt in order 
   to transfer the configuration the physics. Configurations for operational 
   runs have been translated and they are available in the run_config 
   directory. A translation table has been provided in the doc directory 
   in "namelist_conversion.txt" to help convert former "gem_settings.nml"(s).
   Please note that the document "gem_settings.nml.txt" have been 
   alphabetized to make the search for variables easier.

   The formal interface to different chemistry package is now available
   through the itf_chm_[name].ftn routines. 

   The formal interface to the Oasis coupler package is now available
   through the itf_cpl_[name].ftn routines. 

4) We are now introducing yet another interpolation scheme for the SL
   scheme. Logical control variable Adw_lag3d_L from namelist $gem has
   been replaced by the string variable Adw_interp_type_S which defaults
   to 'LAG3D' (Lagrange cubic in the vertical). Other options are CUBIC
   (cubic spline in the vertical) and LAG3D_TRUNC (truncated Lagrange
   cubic interpolation in 3D).

5) An iterative elliptic problem solver based on FGMRES has been introduced
   as an alternative to the present direct solver. The control parameter is
   sol_type_S whose default is 'DIRECT'. To activate the iterative solver,
   just set sol_type_S='ITERATIVE'.

6) Up until now, the restart functionality was supported only on the
   very same MPI processors topology from one restart to the next.
   This was due to the fact that every processor was writing its own restart
   file. It is now possible to tell the model to globally collect the
   data and write a single restart file. This is of course not the
   most efficient way of writing a restart but it allows the user to
   change the MPI processor topology between restarts in the event for
   example that computer resources would require such a change. The
   control variable to activate this option is Rstri_glbcol_L.

7) An explicit horizontal diffusion scheme has been implemented for LAM
   configurations. The control variable is Hzd_type_S (default='NIL')
   which can be set to 'EXPLICIT'.

8) By default, model output will not be compressed (datyp=1). To enable
   the new feature of having compressed fields (datyp=134), set the control
   variable Out3_compress_L to .true.

9) This version is linked to RMNLIB rmn_009

10) Coding of TL/AD of LAM version has now been completed 

11) The feature of having variable topography is now working and available
    Vtopo_ndt=Number of timesteps to complete, Vtopo_start=starting timestep

12) New controls in the gem_cfgs namelist for optimizing different configs.

==> Note the key "npeOMP" is removed from the file "configexp.dot.cfg" and

    placed in the namelist of "ptopo" in the file "gem_settings.nml". Here 
    are the new controls in the the namelist of "ptopo":
    Ptopo_npeOpenMP => number of processors requested for OpenMp
    Ptopo_smtphy    => number of threads around PHYSICS only
    Ptopo_smtglb    => number of threads globally 
    Ptopo_bind_L    => TRUE for binding in OpenMp 

    Reminder to use these scripts to configure the topology before
    sending the job to MAIA/NAOS:

    checktopo
    findtopo
    findfft

13) Miscellaneous:
    - Re-vectorization of main computing routines for vector processors users
    - OpenMP correction/optimization of a few routines
    - More modular way of reading the namelists and configuring default values
    - Removal of control variable: Mem_phyncore and Schm_alpco_8 (unused)
    - Removal of control variable: Schm_maxcfl_lam (use Adw_halox,Adw_haloy)
    - For batch runs, a new key "t_ent" for Um_launch has been added to
      control the time limit for the entry program. The default is now 1800s
      instead of 7200s
    - For theoretical case runs, a new key "theoc" for Um_runmod.sh has been
      added
    - Extra output feature added: the "etiket" in the file can be user=defined
      depending on the grid definition. See outcfg.out.txt

#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#
   Sample run configurations can be found at $gem/run_configs
   Sample analysis given in these examples are not guaranteed to exist
#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#+#

Extra note: This version does not run on POLLUX for certain configurations
            due to a problem with the length of the namelist writeout 
            (SGI compiler bug will be submitted)


############################################################################