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