[10460] | 1 | *************** |
---|
| 2 | Oceanic tracers |
---|
| 3 | *************** |
---|
[10201] | 4 | |
---|
[11734] | 5 | .. todo:: |
---|
| 6 | |
---|
| 7 | |
---|
| 8 | |
---|
[10201] | 9 | .. contents:: |
---|
[11713] | 10 | :local: |
---|
[10201] | 11 | |
---|
[11713] | 12 | TOP (Tracers in the Ocean Paradigm) is the NEMO hardwired interface toward |
---|
| 13 | biogeochemical models and provide the physical constraints/boundaries for oceanic tracers. |
---|
| 14 | It consists of a modular framework to handle multiple ocean tracers, |
---|
| 15 | including also a variety of built-in modules. |
---|
[10201] | 16 | |
---|
| 17 | This component of the NEMO framework allows one to exploit available modules (see below) and |
---|
| 18 | further develop a range of applications, spanning from the implementation of a dye passive tracer to |
---|
| 19 | evaluate dispersion processes (by means of MY_TRC), track water masses age (AGE module), |
---|
[11713] | 20 | assess the ocean interior penetration of persistent chemical compounds |
---|
| 21 | (e.g., gases like CFC or even PCBs), up to the full set of equations involving |
---|
| 22 | marine biogeochemical cycles. |
---|
[10201] | 23 | |
---|
| 24 | Structure |
---|
[10279] | 25 | ========= |
---|
[10201] | 26 | |
---|
[11713] | 27 | TOP interface has the following location in the source code :file:`./src/TOP` and |
---|
[10201] | 28 | the following modules are available: |
---|
| 29 | |
---|
[11713] | 30 | :file:`TRP` |
---|
| 31 | Interface to NEMO physical core for computing tracers transport |
---|
[10201] | 32 | |
---|
[11713] | 33 | :file:`CFC` |
---|
| 34 | Inert carbon tracers (CFC11,CFC12,SF6) |
---|
[10201] | 35 | |
---|
[11713] | 36 | :file:`C14` |
---|
| 37 | Radiocarbon passive tracer |
---|
[10201] | 38 | |
---|
[11713] | 39 | :file:`AGE` |
---|
| 40 | Water age tracking |
---|
[10201] | 41 | |
---|
[11713] | 42 | :file:`MY_TRC` |
---|
| 43 | Template for creation of new modules and external BGC models coupling |
---|
[10201] | 44 | |
---|
[11713] | 45 | :file:`PISCES` |
---|
| 46 | Built in BGC model. See :cite:`gmd-8-2465-2015` for a throughout description. |
---|
[10201] | 47 | |
---|
[11713] | 48 | The usage of TOP is activated |
---|
| 49 | *i)* by including in the configuration definition the component ``TOP`` and |
---|
| 50 | *ii)* by adding the macro ``key_top`` in the configuration CPP file |
---|
| 51 | (see for more details :forge:`"Learn more about the model" <wiki/Users>`). |
---|
[10201] | 52 | |
---|
| 53 | As an example, the user can refer to already available configurations in the code, |
---|
| 54 | ``GYRE_PISCES`` being the NEMO biogeochemical demonstrator and |
---|
| 55 | ``GYRE_BFM`` to see the required configuration elements to couple with an external biogeochemical model |
---|
| 56 | (see also Section 4) . |
---|
| 57 | |
---|
[11713] | 58 | Note that, since version 4.0, |
---|
| 59 | TOP interface core functionalities are activated by means of logical keys and |
---|
[10201] | 60 | all submodules preprocessing macros from previous versions were removed. |
---|
| 61 | |
---|
| 62 | Here below the list of preprocessing keys that applies to the TOP interface (beside ``key_top``): |
---|
| 63 | |
---|
[14239] | 64 | ``key_xios`` |
---|
[11713] | 65 | use XIOS I/O |
---|
[10201] | 66 | |
---|
| 67 | ``key_agrif`` |
---|
[11713] | 68 | enable AGRIF coupling |
---|
[10201] | 69 | |
---|
| 70 | ``key_trdtrc`` & ``key_trdmxl_trc`` |
---|
[11713] | 71 | trend computation for tracers |
---|
[10201] | 72 | |
---|
| 73 | Synthetic Workflow |
---|
[10279] | 74 | ================== |
---|
[10201] | 75 | |
---|
[11713] | 76 | A synthetic description of the TOP interface workflow is given below to |
---|
| 77 | summarize the steps involved in the computation of biogeochemical and physical trends and |
---|
| 78 | their time integration and outputs, |
---|
[10201] | 79 | by reporting also the principal Fortran subroutine herein involved. |
---|
| 80 | |
---|
[11713] | 81 | Model initialization (:file:`./src/OCE/nemogcm.F90`) |
---|
| 82 | ---------------------------------------------------- |
---|
[10201] | 83 | |
---|
[11713] | 84 | Call to ``trc_init`` subroutine (:file:`./src/TOP/trcini.F90`) to initialize TOP. |
---|
[10201] | 85 | |
---|
[11713] | 86 | .. literalinclude:: ../../../src/TOP/trcini.F90 |
---|
| 87 | :language: fortran |
---|
| 88 | :lines: 41-86 |
---|
| 89 | :emphasize-lines: 21,30-32,38-40 |
---|
| 90 | :caption: ``trc_init`` subroutine |
---|
[10201] | 91 | |
---|
[11713] | 92 | Time marching procedure (:file:`./src/OCE/step.F90`) |
---|
| 93 | ---------------------------------------------------- |
---|
[10201] | 94 | |
---|
[11713] | 95 | Call to ``trc_stp`` subroutine (:file:`./src/TOP/trcstp.F90`) to compute/update passive tracers. |
---|
[10201] | 96 | |
---|
[11713] | 97 | .. literalinclude:: ../../../src/TOP/trcstp.F90 |
---|
| 98 | :language: fortran |
---|
| 99 | :lines: 46-125 |
---|
| 100 | :emphasize-lines: 42,55-57 |
---|
| 101 | :caption: ``trc_stp`` subroutine |
---|
[10201] | 102 | |
---|
[11713] | 103 | BGC trends computation for each submodule (:file:`./src/TOP/trcsms.F90`) |
---|
| 104 | ------------------------------------------------------------------------ |
---|
[10201] | 105 | |
---|
[11713] | 106 | .. literalinclude:: ../../../src/TOP/trcsms.F90 |
---|
| 107 | :language: fortran |
---|
| 108 | :lines: 21 |
---|
| 109 | :caption: :file:`trcsms` snippet |
---|
[10201] | 110 | |
---|
[11713] | 111 | Physical trends computation (:file:`./src/TOP/TRP/trctrp.F90`) |
---|
| 112 | -------------------------------------------------------------- |
---|
[10201] | 113 | |
---|
[11713] | 114 | .. literalinclude:: ../../../src/TOP/TRP/trctrp.F90 |
---|
| 115 | :language: fortran |
---|
| 116 | :lines: 46-95 |
---|
| 117 | :emphasize-lines: 17,21,29,33-35 |
---|
| 118 | :caption: ``trc_trp`` subroutine |
---|
[10201] | 119 | |
---|
| 120 | Namelists walkthrough |
---|
[10279] | 121 | ===================== |
---|
[10201] | 122 | |
---|
[11713] | 123 | :file:`namelist_top` |
---|
| 124 | -------------------- |
---|
[10201] | 125 | |
---|
[11713] | 126 | Here below are listed the features/options of the TOP interface accessible through |
---|
| 127 | the :file:`namelist_top_ref` and modifiable by means of :file:`namelist_top_cfg` |
---|
| 128 | (as for NEMO physical ones). |
---|
[10201] | 129 | |
---|
[11713] | 130 | Note that ``##`` is used to refer to a number in an array field. |
---|
[10201] | 131 | |
---|
| 132 | .. literalinclude:: ../../namelists/namtrc_run |
---|
[11708] | 133 | :language: fortran |
---|
[10201] | 134 | |
---|
| 135 | .. literalinclude:: ../../namelists/namtrc |
---|
[11708] | 136 | :language: fortran |
---|
[10201] | 137 | |
---|
| 138 | .. literalinclude:: ../../namelists/namtrc_dta |
---|
[11708] | 139 | :language: fortran |
---|
[10201] | 140 | |
---|
| 141 | .. literalinclude:: ../../namelists/namtrc_adv |
---|
[11708] | 142 | :language: fortran |
---|
[10201] | 143 | |
---|
| 144 | .. literalinclude:: ../../namelists/namtrc_ldf |
---|
[11708] | 145 | :language: fortran |
---|
[10201] | 146 | |
---|
| 147 | .. literalinclude:: ../../namelists/namtrc_rad |
---|
[11708] | 148 | :language: fortran |
---|
[10201] | 149 | |
---|
[10549] | 150 | .. literalinclude:: ../../namelists/namtrc_snk |
---|
[11708] | 151 | :language: fortran |
---|
[10549] | 152 | |
---|
[10201] | 153 | .. literalinclude:: ../../namelists/namtrc_dmp |
---|
[11708] | 154 | :language: fortran |
---|
[10201] | 155 | |
---|
| 156 | .. literalinclude:: ../../namelists/namtrc_ice |
---|
[11708] | 157 | :language: fortran |
---|
[10201] | 158 | |
---|
| 159 | .. literalinclude:: ../../namelists/namtrc_trd |
---|
[11708] | 160 | :language: fortran |
---|
[10201] | 161 | |
---|
| 162 | .. literalinclude:: ../../namelists/namtrc_bc |
---|
[11708] | 163 | :language: fortran |
---|
[10201] | 164 | |
---|
| 165 | .. literalinclude:: ../../namelists/namtrc_bdy |
---|
[11708] | 166 | :language: fortran |
---|
[10201] | 167 | |
---|
| 168 | .. literalinclude:: ../../namelists/namage |
---|
[11708] | 169 | :language: fortran |
---|
[10201] | 170 | |
---|
[11713] | 171 | Two main types of data structure are used within TOP interface |
---|
| 172 | to initialize tracer properties (1) and |
---|
[10201] | 173 | to provide related initial and boundary conditions (2). |
---|
| 174 | |
---|
[11713] | 175 | 1. TOP tracers initialization: ``sn_tracer`` (``&namtrc``) |
---|
| 176 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
---|
[10201] | 177 | |
---|
| 178 | Beside providing name and metadata for tracers, |
---|
[11713] | 179 | here are also defined the use of initial (``sn_tracer%llinit``) and |
---|
| 180 | boundary (``sn_tracer%llsbc, sn_tracer%llcbc, sn_tracer%llobc``) conditions. |
---|
[10201] | 181 | |
---|
[11713] | 182 | In the following, an example of the full structure definition is given for |
---|
| 183 | two idealized tracers both with initial conditions given, |
---|
| 184 | while the first has only surface boundary forcing and |
---|
[10201] | 185 | the second both surface and coastal forcings: |
---|
| 186 | |
---|
| 187 | .. code-block:: fortran |
---|
| 188 | |
---|
[11713] | 189 | ! ! name ! title of the field ! units ! initial data ! sbc ! cbc ! obc ! |
---|
| 190 | sn_tracer(1) = 'TRC1' , 'Tracer 1 Concentration ', ' - ' , .true. , .true., .false., .true. |
---|
| 191 | sn_tracer(2) = 'TRC2 ' , 'Tracer 2 Concentration ', ' - ' , .true. , .true., .true. , .false. |
---|
[10201] | 192 | |
---|
| 193 | As tracers in BGC models are increasingly growing, |
---|
| 194 | the same structure can be written also in a more compact and readable way: |
---|
| 195 | |
---|
| 196 | .. code-block:: fortran |
---|
| 197 | |
---|
[11713] | 198 | ! ! name ! title of the field ! units ! initial data ! |
---|
| 199 | sn_tracer(1) = 'TRC1' , 'Tracer 1 Concentration ', ' - ' , .true. |
---|
| 200 | sn_tracer(2) = 'TRC2 ' , 'Tracer 2 Concentration ', ' - ' , .true. |
---|
| 201 | ! sbc |
---|
| 202 | sn_tracer(1)%llsbc = .true. |
---|
| 203 | sn_tracer(2)%llsbc = .true. |
---|
| 204 | ! cbc |
---|
| 205 | sn_tracer(2)%llcbc = .true. |
---|
[10201] | 206 | |
---|
| 207 | The data structure is internally initialized by code with dummy names and |
---|
[11713] | 208 | all initialization/forcing logical fields set to ``.false.`` . |
---|
[10201] | 209 | |
---|
[11713] | 210 | 2. Structures to read input initial and boundary conditions: ``&namtrc_dta`` (``sn_trcdta``), ``&namtrc_bc`` (``sn_trcsbc`` / ``sn_trccbc`` / ``sn_trcobc``) |
---|
| 211 | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
---|
[10201] | 212 | |
---|
| 213 | The overall data structure (Fortran type) is based on the general one defined for NEMO core in the SBC component |
---|
[11723] | 214 | (see details in ``SBC`` Chapter of :doc:`Reference Manual <cite>` on Input Data specification). |
---|
[10201] | 215 | |
---|
[11713] | 216 | Input fields are prescribed within ``&namtrc_dta`` (with ``sn_trcdta`` structure), |
---|
| 217 | while Boundary Conditions are applied to the model by means of ``&namtrc_bc``, |
---|
| 218 | with dedicated structure fields for surface (``sn_trcsbc``), riverine (``sn_trccbc``), and |
---|
| 219 | lateral open (``sn_trcobc``) boundaries. |
---|
[10201] | 220 | |
---|
| 221 | The following example illustrates the data structure in the case of initial condition for |
---|
[11713] | 222 | a single tracer contained in the file named :file:`tracer_1_data.nc` |
---|
| 223 | (``.nc`` is implicitly assumed in namelist filename), |
---|
| 224 | with a doubled initial value, and located in the :file:`usr/work/model/inputdata` folder: |
---|
[10201] | 225 | |
---|
| 226 | .. code-block:: fortran |
---|
| 227 | |
---|
[11713] | 228 | ! ! file name ! frequency (hours) ! variable ! time interp. ! clim ! 'yearly'/ ! weights ! rotation ! land/sea mask ! |
---|
| 229 | ! ! ! (if <0 months) ! name ! (logical) ! (T/F) ! 'monthly' ! filename ! pairing ! filename ! |
---|
| 230 | sn_trcdta(1) = 'tracer_1_data' , -12 , 'TRC1' , .false. , .true. , 'yearly' , '' , '' , '' |
---|
| 231 | rf_trfac(1) = 2.0 |
---|
| 232 | cn_dir = 'usr/work/model/inputdata/' |
---|
[10201] | 233 | |
---|
[11713] | 234 | Note that, the Lateral Open Boundaries conditions are applied on |
---|
| 235 | the segments defined for the physical core of NEMO |
---|
[11723] | 236 | (see ``BDY`` description in the :doc:`Reference Manual <cite>`). |
---|
[10201] | 237 | |
---|
[11713] | 238 | :file:`namelist_trc` |
---|
| 239 | -------------------- |
---|
[10201] | 240 | |
---|
[11713] | 241 | Here below the description of :file:`namelist_trc_ref` used to handle Carbon tracers modules, |
---|
| 242 | namely CFC and C14. |
---|
[10201] | 243 | |
---|
[11713] | 244 | .. literalinclude:: ../../../cfgs/SHARED/namelist_trc_ref |
---|
| 245 | :language: fortran |
---|
| 246 | :lines: 7,17,26,34 |
---|
| 247 | :caption: :file:`namelist_trc_ref` snippet |
---|
[10201] | 248 | |
---|
| 249 | ``MY_TRC`` interface for coupling external BGC models |
---|
[10279] | 250 | ===================================================== |
---|
[10201] | 251 | |
---|
[11713] | 252 | The generalized interface is pivoted on MY_TRC module that contains template files to |
---|
| 253 | build the coupling between |
---|
[10201] | 254 | NEMO and any external BGC model. |
---|
| 255 | |
---|
[11713] | 256 | The call to MY_TRC is activated by setting ``ln_my_trc = .true.`` (in ``&namtrc``) |
---|
[10201] | 257 | |
---|
| 258 | The following 6 fortran files are available in MY_TRC with the specific purposes here described. |
---|
| 259 | |
---|
[11713] | 260 | :file:`par_my_trc.F90` |
---|
| 261 | This module allows to define additional arrays and public variables to |
---|
| 262 | be used within the MY_TRC interface |
---|
[10201] | 263 | |
---|
[11713] | 264 | :file:`trcini_my_trc.F90` |
---|
| 265 | Here are initialized user defined namelists and |
---|
| 266 | the call to the external BGC model initialization procedures to populate general tracer array |
---|
| 267 | (``trn`` and ``trb``). |
---|
| 268 | Here are also likely to be defined support arrays related to system metrics that |
---|
| 269 | could be needed by the BGC model. |
---|
[10201] | 270 | |
---|
[11713] | 271 | :file:`trcnam_my_trc.F90` |
---|
| 272 | This routine is called at the beginning of ``trcini_my_trc`` and |
---|
| 273 | should contain the initialization of additional namelists for the BGC model or user-defined code. |
---|
[10201] | 274 | |
---|
[11713] | 275 | :file:`trcsms_my_trc.F90` |
---|
| 276 | The routine performs the call to Boundary Conditions and its main purpose is to |
---|
| 277 | contain the Source-Minus-Sinks terms due to the biogeochemical processes of the external model. |
---|
| 278 | Be aware that lateral boundary conditions are applied in trcnxt routine. |
---|
[10201] | 279 | |
---|
[11713] | 280 | .. warning:: |
---|
| 281 | The routines to compute the light penetration along the water column and |
---|
| 282 | the tracer vertical sinking should be defined/called in here, |
---|
| 283 | as generalized modules are still missing in the code. |
---|
[10201] | 284 | |
---|
[11713] | 285 | :file:`trcice_my_trc.F90` |
---|
| 286 | Here it is possible to prescribe the tracers concentrations in the sea-ice that |
---|
| 287 | will be used as boundary conditions when ice melting occurs (``nn_ice_tr = 1`` in ``&namtrc_ice``). |
---|
| 288 | See e.g. the correspondent PISCES subroutine. |
---|
[10201] | 289 | |
---|
[11713] | 290 | :file:`trcwri_my_trc.F90` |
---|
| 291 | This routine performs the output of the model tracers (only those defined in ``&namtrc``) using |
---|
[11723] | 292 | IOM module (see chapter “Output and Diagnostics” in the :doc:`Reference Manual <cite>`). |
---|
[11713] | 293 | It is possible to place here the output of additional variables produced by the model, |
---|
| 294 | if not done elsewhere in the code, using the call to ``iom_put``. |
---|
| 295 | |
---|
[10201] | 296 | Coupling an external BGC model using NEMO framework |
---|
[10279] | 297 | =================================================== |
---|
[10201] | 298 | |
---|
| 299 | The coupling with an external BGC model through the NEMO compilation framework can be achieved in |
---|
| 300 | different ways according to the degree of coding complexity of the Biogeochemical model, like e.g., |
---|
[11713] | 301 | the whole code is made only by one file or |
---|
| 302 | it has multiple modules and interfaces spread across several subfolders. |
---|
[10201] | 303 | |
---|
[11713] | 304 | Beside the 6 core files of MY_TRC module, let’s assume an external BGC model named *MYBGC* and |
---|
| 305 | constituted by a rather essential coding structure, likely few Fortran files. |
---|
[10201] | 306 | The new coupled configuration name is *NEMO_MYBGC*. |
---|
| 307 | |
---|
[11713] | 308 | The best solution is to have all files (the modified ``MY_TRC`` routines and the BGC model ones) |
---|
| 309 | placed in a unique folder with root ``MYBGCPATH`` and |
---|
| 310 | to use the makenemo external readdressing of ``MY_SRC`` folder. |
---|
[10201] | 311 | |
---|
[11713] | 312 | The coupled configuration listed in :file:`work_cfgs.txt` will look like |
---|
[10201] | 313 | |
---|
| 314 | :: |
---|
| 315 | |
---|
[11713] | 316 | NEMO_MYBGC OCE TOP |
---|
[10201] | 317 | |
---|
| 318 | and the related ``cpp_MYBGC.fcm`` content will be |
---|
| 319 | |
---|
| 320 | .. code-block:: perl |
---|
| 321 | |
---|
[14239] | 322 | bld::tool::fppkeys key_xios key_top |
---|
[10201] | 323 | |
---|
[11713] | 324 | the compilation with :file:`makenemo` will be executed through the following syntax |
---|
[10201] | 325 | |
---|
| 326 | .. code-block:: console |
---|
| 327 | |
---|
[11713] | 328 | $ makenemo -n 'NEMO_MYBGC' -m '<arch_my_machine>' -j 8 -e '<MYBGCPATH>' |
---|
[10201] | 329 | |
---|
[11713] | 330 | The makenemo feature ``-e`` was introduced to |
---|
| 331 | readdress at compilation time the standard MY_SRC folder (usually found in NEMO configurations) with |
---|
| 332 | a user defined external one. |
---|
[10201] | 333 | |
---|
[11713] | 334 | The compilation of more articulated BGC model code & infrastructure, |
---|
| 335 | like in the case of BFM (|BFM man|_), requires some additional features. |
---|
[10201] | 336 | |
---|
| 337 | As before, let’s assume a coupled configuration name *NEMO_MYBGC*, |
---|
[11713] | 338 | but in this case MYBGC model root becomes :file:`MYBGC` path that |
---|
| 339 | contains 4 different subfolders for biogeochemistry, |
---|
| 340 | named :file:`initialization`, :file:`pelagic`, and :file:`benthic`, |
---|
| 341 | and a separate one named :file:`nemo_coupling` including the modified `MY_SRC` routines. |
---|
[10201] | 342 | The latter folder containing the modified NEMO coupling interface will be still linked using |
---|
[11713] | 343 | the makenemo ``-e`` option. |
---|
[10201] | 344 | |
---|
| 345 | In order to include the BGC model subfolders in the compilation of NEMO code, |
---|
[11713] | 346 | it will be necessary to extend the configuration :file:`cpp_NEMO_MYBGC.fcm` file to include the specific paths of :file:`MYBGC` folders, as in the following example |
---|
[10201] | 347 | |
---|
| 348 | .. code-block:: perl |
---|
| 349 | |
---|
[14239] | 350 | bld::tool::fppkeys key_xios key_top |
---|
[11708] | 351 | |
---|
[11713] | 352 | src::MYBGC::initialization <MYBGCPATH>/initialization |
---|
| 353 | src::MYBGC::pelagic <MYBGCPATH>/pelagic |
---|
| 354 | src::MYBGC::benthic <MYBGCPATH>/benthic |
---|
[11708] | 355 | |
---|
[11713] | 356 | bld::pp::MYBGC 1 |
---|
| 357 | bld::tool::fppflags::MYBGC %FPPFLAGS |
---|
| 358 | bld::tool::fppkeys %bld::tool::fppkeys MYBGC_MACROS |
---|
[10201] | 359 | |
---|
| 360 | where *MYBGC_MACROS* is the space delimited list of macros used in *MYBGC* model for |
---|
| 361 | selecting/excluding specific parts of the code. |
---|
[11713] | 362 | The BGC model code will be preprocessed in the configuration :file:`BLD` folder as for NEMO, |
---|
| 363 | but with an independent path, like :file:`NEMO_MYBGC/BLD/MYBGC/<subforlders>`. |
---|
[10201] | 364 | |
---|
| 365 | The compilation will be performed similarly to in the previous case with the following |
---|
| 366 | |
---|
| 367 | .. code-block:: console |
---|
| 368 | |
---|
[11713] | 369 | $ makenemo -n 'NEMO_MYBGC' -m '<arch_my_machine>' -j 8 -e '<MYBGCPATH>/nemo_coupling' |
---|
[10201] | 370 | |
---|
[11713] | 371 | .. note:: |
---|
| 372 | The additional lines specific for the BGC model source and build paths can be written into |
---|
| 373 | a separate file, e.g. named :file:`MYBGC.fcm`, |
---|
| 374 | and then simply included in the :file:`cpp_NEMO_MYBGC.fcm` as follow |
---|
[10201] | 375 | |
---|
[11713] | 376 | .. code-block:: perl |
---|
[10201] | 377 | |
---|
[14446] | 378 | bld::tool::fppkeys key_xios key_top |
---|
[11713] | 379 | inc <MYBGCPATH>/MYBGC.fcm |
---|
[10201] | 380 | |
---|
[11713] | 381 | This will enable a more portable compilation structure for all MYBGC related configurations. |
---|
[10201] | 382 | |
---|
[11713] | 383 | .. warning:: |
---|
| 384 | The coupling interface contained in :file:`nemo_coupling` cannot be added using the FCM syntax, |
---|
| 385 | as the same files already exists in NEMO and they are overridden only with |
---|
| 386 | the readdressing of MY_SRC contents to avoid compilation conflicts due to duplicate routines. |
---|
[10201] | 387 | |
---|
[11713] | 388 | All modifications illustrated above, can be easily implemented using shell or python scripting |
---|
| 389 | to edit the NEMO configuration :file:`CPP.fcm` file and |
---|
| 390 | to create the BGC model specific FCM compilation file with code paths. |
---|
| 391 | |
---|
| 392 | .. |BFM man| replace:: BFM-NEMO coupling manual |
---|