82 | | | Idealized configuration representing double gyres in the North hemisphere, Beta-plane with |
83 | | a regular grid spacing at 1° horizontal resolution (and possible use as a benchmark by |
84 | | easily increasing grid size), 101 vertical levels, forced with analytical heat, freshwater and |
85 | | wind-stress fields. |
86 | | | This configuration is coupled to `PISCES biogeochemical model`_. |
87 | | |
88 | | Running GYRE as a benchmark |
89 | | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
90 | | |
91 | | This simple configuration can be used as a benchmark since it is easy to increase resolution |
92 | | (and in this case no physical meaning of outputs): |
93 | | |
94 | | 1. Choose the grid size |
95 | | |
96 | | In ``./cfgs/GYRE/EXP00``, edit your ``namelist_cfg`` file to change the ``jp_cfg``, ``jpi``, ``jpj``, |
97 | | ``jpk`` variables in &namcfg: |
98 | | |
99 | | +------------+---------+---------+---------+------------------+---------------+ |
100 | | | ``jp_cfg`` | ``jpi`` | ``jpj`` | ``jpk`` | Number of points | Equivalent to | |
101 | | +============+=========+=========+=========+==================+===============+ |
102 | | | 1 | 30 | 20 | 101 | 60600 | GYRE 1° | |
103 | | +------------+---------+---------+---------+------------------+---------------+ |
104 | | | 25 | 750 | 500 | 101 | 37875000 | ORCA 1/2° | |
105 | | +------------+---------+---------+---------+------------------+---------------+ |
106 | | | 50 | 1500 | 1000 | 101 | 151500000 | ORCA 1/4° | |
107 | | +------------+---------+---------+---------+------------------+---------------+ |
108 | | | 150 | 4500 | 3000 | 101 | 1363500000 | ORCA 1/12° | |
109 | | +------------+---------+---------+---------+------------------+---------------+ |
110 | | | 200 | 6000 | 4000 | 101 | 2424000000 | ORCA 1/16° | |
111 | | +------------+---------+---------+---------+------------------+---------------+ |
112 | | |
113 | | 2. In `namelist_cfg` again, avoid problems in the physics (and results will not be meaningful in terms of physics) by setting `nn_bench = 1` in &namctl |
| 80 | GYRE_PISCES is an idealized configuration representing a Northern hemisphere double gyres system, in the Beta-plane approximation with a regular 1° horizontal resolution and 31 vertical levels, which is coupled with `PISCES biogeochemical model`_. Analytical forcing for heat, freshwater and wind-stress fields are applied. |
| 81 | |
| 82 | This configuration act also as demonstrator of the **USER DEFINED setup** (``ln_read_cfg = .false.``) and grid setting are handled through the ``&namusr_def`` controls in namelist_cfg: |
116 | | |
117 | | nn_bench = 1 ! Bench mode (1/0): CAUTION use zero except for bench |
118 | | |
119 | | 3. If you increase domain size, you may need to decrease time-step (for stability) by changing `rn_rdt` value in &namdom (i.e. for `jp_cfg = 150`, ORCA12 equivalent, use `rn_rdt = 1200`) |
| 85 | |
| 86 | !----------------------------------------------------------------------- |
| 87 | &namusr_def ! GYRE user defined namelist |
| 88 | !----------------------------------------------------------------------- |
| 89 | nn_GYRE = 1 ! GYRE resolution [1/degrees] |
| 90 | ln_bench = .false. ! ! =T benchmark with gyre: the gridsize is kept constant |
| 91 | jpkglo = 31 ! number of model levels |
| 92 | / |
| 93 | |
| 94 | Note that, the default grid size is 30x20 grid points (with ``nn_GYRE = 1``) and vertical levels are set by ``jpkglo``. |
| 95 | |
| 96 | **Running GYRE as a benchmark** : this simple configuration can be used as a benchmark since it is easy to increase resolution, with the drawback of getting results that have a very limited physical meaning (see e.g., `Levy et al 2010 <https://www.sciencedirect.com/science/article/pii/S1463500310000582>`_). |
| 97 | |
| 98 | GYRE grid resolution can be easily increased at runtime by setting a different value of ``nn_GYRE`` that is an integer multiplier factor to scale the grid size, as described in the following table: |
| 99 | |
| 100 | =========== ========= ========== ============ =================== |
| 101 | ``nn_GYRE`` *jpiglo* *jpjglo* ``jpkglo`` **Equivalent to** |
| 102 | =========== ========= ========== ============ =================== |
| 103 | 1 30 20 31 GYRE 1° |
| 104 | 25 750 500 101 ORCA 1/2° |
| 105 | 50 1500 1000 101 ORCA 1/4° |
| 106 | 150 4500 3000 101 ORCA 1/12° |
| 107 | 200 6000 4000 101 ORCA 1/16° |
| 108 | =========== ========= ========== ============ =================== |
| 109 | |
| 110 | Note that, it is necessary to set ``ln_bench = .true.`` in ``namusr_def`` to avoid problems in the physics computation and that the model timestep should be adequately rescaled. |
| 111 | |
| 112 | For example if ``nn_GYRE = 150``, that is equivalent to ORCA 1/12° the timestep should be set to 1200 seconds |
125 | | 4. Optional, in order to increase the number of MPI communication for benchmark purposes: |
126 | | you can change the number of sub-timesteps computed in the time-splitting scheme each iteration. |
127 | | First change the list of active CPP keys for your experiment, |
128 | | in `cfgs/"your configuration name"/cpp_"your configuration name".fcm`: |
129 | | replace ``key_dynspg_flt by key_dynspg_ts`` and recompile/create your executable again |
130 | | |
131 | | .. code-block:: fortran |
132 | | |
133 | | makenemo [...] add_key 'key_dynspg_ts' del_key 'key_dynspg_flt' |
134 | | |
135 | | In your ``namelist_cfg`` file, edit the &namsplit namelist by adding the following line: |
136 | | |
137 | | .. code-block:: fortran |
138 | | |
139 | | nn_baro = 30 ! Number of iterations of barotropic mode/ |
140 | | |
141 | | ``nn_baro = 30`` is a kind of minimum (we usually use 30 to 60). |
142 | | So than increasing the ``nn_baro`` value will increase the number of MPI communications. |
143 | | |
144 | | The GYRE CPP keys, namelists and scripts can be explored in the ``GYRE`` configuration directory |
145 | | (``./cfgs/GYRE`` and ``./cfgs/GYRE/EXP00``). |
146 | | |
147 | | Find monthly mean outputs of 1 year run here: |
148 | | http://prodn.idris.fr/thredds/catalog/ipsl_public/reee451/NEMO_OUT/GYRE/catalog.html |
| 118 | Differently from previous versions of NEMO, the code uses by default the time-splitting scheme and internally computes the number of sub-steps. |
| 119 | |