! ! Multiple model coupling parameters: ESMF/NUOPC Library ! !svn $Id: coupling_esmf.in 946 2019-02-03 16:32:28Z arango $ !========================================================= Hernan G. Arango === ! Copyright (c) 2002-2019 The ROMS/TOMS Group ! ! Licensed under a MIT/X style license ! ! See License_ROMS.txt ! !============================================================================== ! ! ! Input parameters can be entered in ANY order, provided that the parameter ! ! KEYWORD (usually, upper case) is typed correctly followed by "=" or "==" ! ! symbols. Any comment lines are allowed and must begin with an exclamation ! ! mark (!) in column one. Comments may appear to the right of a parameter ! ! specification to improve documentation. Comments will be ignored during ! ! reading. Blank lines are also allowed and ignored. Continuation lines in ! ! a parameter specification are allowed and must be preceded by a backslash ! ! (\). In some instances, more than one value is required for a parameter. ! ! If fewer values are provided, the last value is assigned for the entire ! ! parameter array. The multiplication symbol (*), without blank spaces in ! ! between, is allowed for a parameter specification. For example, in a two ! ! grids nested application: ! ! ! ! AKT_BAK == 2*1.0d-6 2*5.0d-6 ! m2/s ! ! ! ! indicates that the first two entries of array AKT_BAK, in fortran column- ! ! major order, will have the same value of "1.0d-6" for grid 1, whereas the ! ! next two entries will have the same value of "5.0d-6" for grid 2. ! ! ! ! In multiple levels of nesting and/or multiple connected domains step-ups, ! ! "Ngrids" entries are expected for some of these parameters. In such case, ! ! the order of the entries for a parameter is extremely important. It must ! ! follow the same order (1:Ngrids) as in the state variable declaration. The ! ! USER may follow the above guidelines for specifying his/her values. These ! ! parameters are marked by "==" plural symbol after the KEYWORD. ! ! ! ! If the DATA Model is activated, the user needs to specify all the filenames ! ! containing export fields required by a particular ESM component. Currently, ! ! multiple NetCDF files are allowed for export fields. Often, it is useful to ! ! split import data time records into several files (say monthly, annual, and ! ! so on). In this case, each multiple filename entry lines need to end with ! ! the vertical bar (|) symbol. For example: ! ! ! ! nDataFiles(seaice) == 5 ! number of NetCDF files to process ! ! ! ! DataFiles(seaice) == my_swrad_year1.nc | ! ! my_swrad_year2.nc \ ! ! my_wstress_year1.nc | ! ! my_wstress_year2.nc \ ! ! my_Pair_year1.nc | ! ! my_Pair_year2.nc \ ! ! my_Qair_year1.nc | ! ! my_Qair_year2.nc \ ! ! my_Tair_year1.nc | ! ! my_Tair_year2.nc ! ! ! ! Notice that "nDataFiles(seaice)" is 5 and not 10. There are 5 uniquely ! ! different fields in the file list; we DO NOT count entries followed by ! ! the vertical bar (|) symbol. Multiple file entries are processed with ! ! derived type structures. ! ! ! !============================================================================== ! ! Coupling import/export variables metadata filename. CPLname = coupling_esmf.dat ! Coupled models standard input script or namelist filename. INPname(roms) = roms.in INPname(atmos) = atmos.in INPname(seaice) = seaice.in INPname(waves) = waves.in ! Active coupled Earth System Models (ESM) switch (T/F). If a component ! is nested, each grid is considered an independent component. Specify ! which nested grids are coupled. The first grid of active ESM componets ! needs to be coupled always. IsActive(roms) == T F ! ROMS (NgridsR) IsActive(atmos) == F F ! atmosphere model (NgridsA) IsActive(seaice) == F ! sea-ice model (NgridsI) IsActive(waves) == F ! wave model (NgridsW) IsActive(data) = T ! data model ! Set which ESM components are connected during coupling (T/F). Coupled(OCN-ATM) = F ! ROMS-atmosphere connected Coupled(OCN-DAT) = T ! ROMS-data connected Coupled(OCN-ICE) = F ! ROMS-seaice connected Coupled(OCN-WAV) = F ! ROMS-wave coupling connected Coupled(ATM-DAT) = F ! atmosphere-data connected Coupled(ATM-ICE) = F ! atmosphere-seaice connected Coupled(ATM-WAV) = F ! atmosphere-wave connected Coupled(ICE-DAT) = F ! seaice-data connected Coupled(ICE-WAV) = F ! seaice-wave connected Coupled(WAV-DAT) = F ! wave-data connected ! Model coupling type (check Glossary): ! ! 1: Explicit ! 2: Semi-Implicit. CouplingType = 1 ! Persistent Execution Thread (PET) layout option: ! ! 0: Sequential, coupled models executed on all the specified PETs ! 1: Concurrent, coupled models executed on non-overlapping set of PETs PETlayoutOption = 0 ! Data Model parallel distributed-memory domain decomposition. ItileD = 2 ! I-direction partition JtileD = 2 ! J-direction partition ! Number of PETs assigned to each model in the coupled system. If sequential ! layout, assign the same number of PETs to all coupled models. If concurrent ! layout, the number of PETs needed is the sum of all coupled model components. ! Only the PET values for IsActive(...)=T are processed and considered. Nthreads(roms) == 4 ! ocean model PETs Nthreads(atmos) == 1 ! atmosphere model PETs Nthreads(seaice) = 1 ! sea-ice model PETs Nthreads(waves) = 1 ! wave model PETs ! Set ESM coupling driver clock. If not re-starting, set StartTime and ! RestartTime to the same values. Set coupling time interval (TimeStep) ! to the largest value for the field exchange between activated ESM ! components. Check glossary below for more information. ! ! YYYY MM DD hh mm ss ReferenceTime = 2006 01 01 00 00 00 ! Simulation reference time StartTime = 2014 01 01 00 00 00 ! Simulation start time RestartTime = 2014 01 01 00 00 00 ! Simulation restart time StopTime = 2014 01 06 00 00 00 ! Simulation stop time TimeStep = 0000 00 00 03 00 00 ! Coupler driver interval Calendar = gregorian ! date calendar ! Coupling time interval fraction (INTEGER) from driver TimeStep indicating ! how often the exchange of information between ESM components occurs. That ! is, the coupling interval between ESM components is TimeStep/TimeFrac. ! If coupling ROMS nested grids, [NgridsR] values are expected. ! Only active model components are processed and considered. TimeFrac(OCN-ATM) == 1 ! ROMS-atmosphere coupling [NgridsR] TimeFrac(OCN-DAT) == 1 ! ROMS-data coupling [NgridsR] TimeFrac(OCN-ICE) == 1 ! ROMS-seaice coupling [NgridsR] TimeFrac(OCN-WAV) == 1 ! ROMS-wave coupling [NgridsR] TimeFrac(ATM-DAT) == 1 ! atmosphere-data coupling [NgridsA] TimeFrac(ATM-ICE) == 1 ! atmosphere-seaice coupling [NgridsA] TimeFrac(ATM-WAV) == 1 ! atmosphere-wave coupling [NgridsA] TimeFrac(ICE-DAT) = 1 ! seaice-data coupling TimeFrac(ICE-WAV) = 1 ! seaice-wave coupling TimeFrac(WAV-DAT) = 1 ! wave-data coupling ! Weighted average coefficients for the merging of DATA component fields with ! the same field from other ESM components. Both coefficients are positive and ! MUST add to unity (WeightDAT + WeightESM = 1.0d0) WeightDAT = 0.5d0 ! DATA component weight WeightESM = 0.5d0 ! ESM component weight ! Coupling debug flag: [0] no debugging ! [1] reports informative messages ! [2] <1> and writes grid information in VTK format ! [3] <2> and writes exchange fields into NetCDF files ! DebugLevel = 1 ! Execution trace flag: [0] no tracing ! [1] reports run sequence of coupling subroutine calls ! [2] <1> writes voluminous ESMF library tracing information TraceLevel = 1 ! Export/Import fields: Use the following string codes to set the fields ! to export/import for each coupled model. ! ! (*) Computed from an exchanged field, not regridded ! ! Field Export Import ! ! NONE - - No field to import or export ! ! shflx atmos roms surface net heat flux ! cloud atmos roms cloud fraction ! Hair atmos roms, cice surface specific humidity ! Tair atmos roms, cice surface air temperature ! Pair atmos roms, cice surface air pressure ! Pmsl atmos roms mean sea level pressure ! Qair atmos roms surface relative humidity ! SWrad atmos roms shortwave radiation flux ! SWrad_daily atmos roms daily averaged shortwave radiation flux ! LWrad atmos roms surface net longwave radiation flux ! dLWrad atmos roms surface downward longwave radiation flux ! rain atmos roms rain fall rate ! Uwind atmos roms, cice, waves surface U-wind component ! Vwind atmos roms, cice, waves surface V-wind component ! Ustr atmos roms, cice surface U-momentum stress ! Vstr atmos roms, cice surface V-momentum stress ! ! zlvl atmos cice atmspheric height lowest level ! rhoa atmos cice surface air density ! potT atmos cice * surface air potential temperature ! flw atmos cice mean downwelling longwave flux ! swvdr atmos cice visible direct downward shortwave flux ! swvdf atmos cice visible diffusive downward shortwave flux ! swidr atmos cice infrared direct downward shortwave flux ! swidf atmos cice infrared diffusive downward shortwave flux ! frain atmos cice mean liquid precipitation rate ! fsnow atmos cice mean frozen/snow precipitation rate ! aero_atm atmos cice meam aerosol deposition rate ! ! ifrac cice atmos fractional ice area ! vice cice atmos ice volume per unit area ! vsno cice atmos snow volume per unit area ! sit cice atmos surface ice/snow temperature ! alvdr cice atmos fractional visible band direct albedo ! alvdf cice atmos fractional visible band diffusive albedo ! alidr cice atmos fractional near-infrared band direct albedo ! alidf cice atmos fractional near-infrared band diffusive albedo ! strairxT cice atmos zonal stress on ice by air ! strairyT cice atmos meridional stress on ice by air ! fsens cice atmos ice sensible heat flux ! flat cice atmos ice latent heat flux ! evap cice atmos mean evaporative water flux ! flwout cice atmos mean outgoing upward longwave radiation ! ! fhocn cice roms net heat flux to ocean ! fresh cice roms fresh water flux to ocean ! fpond cice roms fresh water flux to ice ponds ! fsalt cice roms salt flux to ocean ! strocnxT cice roms zonal stress on ice by ocean ! strocnyT cice roms meridional stress on ice by ocean ! fswthru cice roms shortwave flux, ice to ocean ! fswthruvdr cice roms visible direct band net shortwave, ice to ocean ! fswthruvdf cice roms visible diffusive band net shortwave, ice to ocean ! fswthruidr cice roms infrared direct band net shortwave, ice to ocean ! fswthruidf cice roms infrared diffusive band net shortwave, ice to ocean ! ! frzmlt roms cice freezing/melting potential ! hmix roms cice mixed layer depth ! SSH roms cice, waves sea surface height ! SST roms atmos, cice sea surface temperature ! SSS roms cice sea surface salinity ! ss_tltx roms cice * sea surface slope, x-direction ! ss_tlty roms cice * sea surface slope, y-direction' ! Tf roms cice freezing temperature ! Ubar roms waves vertically integrated U-momentum ! Vbar roms waves vertically integrated V-momentum ! Usur roms cice zonal surface ocean curent ! Vsur roms cice meridional surface ocean curent ! ZO roms waves bottom roughness ! ! Wdir waves roms wave direction ! Wamp waves roms significant wave height ! Wlen waves roms average wave length ! Wptop waves roms surface wave relative peak period ! Wpbot waves roms bottom wave period ! Wdiss waves roms wave energy dissipation ! Wbrk waves roms percent wave breaking ! Wubot waves roms wave bottom orbital velocity ! Ocean model (ROMS) Import and Export fields: Import(1:Nimport) and ! Export(1:Nexport). Nimport(roms) = 8 Nexport(roms) = 0 Import(roms) = dLWrad \ SWrad \ Pair \ Tair \ Qair \ rain \ Uwind \ Vwind Export(roms) = NONE ! Atmospheric model Import and Export fields: Import(1:Nimport) and ! Export(1:Nexport). Nimport(atmos) = 0 Nexport(atmos) = 0 Import(atmos) = NONE Export(atmos) = NONE ! Sea-ice model Import and Export fields: Import(1:Nimport) and ! Export(1:Nexport). Nimport(seaice) = 0 Nexport(seaice) = 0 Import(seaice) = NONE Export(seaice) = NONE ! Sea-ice model Import and Export fields: Import(1:Nimport) and ! Export(1:Nexport). Nimport(waves) = 0 Nexport(waves) = 0 Import(waves) = NONE Export(waves) = NONE !:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ! ! DATA Model Set-up ! ! For each ESM component, specify the following information: ! ! nDataExport(...) The number of fields to export from DATA Model ! to specified ESM component. If zero value, ! exporting of fields to ESM component do not ! take place and the values in "DataExport" and ! "DataFiles" are ignored. ! ! nDataFiles(...) The number of NetCDF files that the DATA Model ! needs to process and read exporting fields. ! ! DataExport(...) Field short name string (see above table) to ! read and export to the specified ESM component, ! "nDataExport" values are expected for activated ! ESM component. ! ! DataFiles(...) NetCDF filenames containing the field to export ! to specified ESM component, nDataFiles are ! expected. The order of files in the list is ! essential. See information about multi-files ! below. ! ! Currently, the DATA model only EXPORTS fields. It is improbable that the ! DATA needs to import fields to itself. ! ! If applicable, the USER has the option to enter several sets of filenames ! for each nested grid. Alternatively, if all the export fields are the same ! for each nesting grid, and the data is in its native resolution, we could ! enter only one set of filenames, and the DATA model will replicate those ! files internally to the remaining grids using the plural KEYWORD protocol. ! The USER may have different filenames for each export field. ! ! The DATA model will scan the files and will read the needed data from the ! first file in the list containing the export field. Therefore, the order of ! the filenames is critical. If using multiple files per nested grid, first ! enter all the filenames for grid one followed by two, and so on. It is also ! possible to split input data time records into several files (see Prolog ! instructions above). Use a single line per entry with a continuation (\) ! or a vertical bar (|) symbol after each entry, except the last one. ! !:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: !------------------------------------------------------------------------------ ! DATA model export to ROMS. !------------------------------------------------------------------------------ nDataExport(roms) == 8 ! number of fields to export nDataFiles(roms) == 8 ! number of NetCDF files to process DataExport(roms) == dLWrad \ SWrad \ Pair \ Tair \ Qair \ rain \ Uwind \ Vwind DataFiles(roms) == ../om/lwrad_down_nam_3hourly_MAB_and_GoM_2014.nc | ../om/lwrad_down_nam_3hourly_MAB_and_GoM_2015.nc | ../om/lwrad_down_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/swrad_nam_3hourly_MAB_and_GoM_2014.nc | ../om/swrad_nam_3hourly_MAB_and_GoM_2015.nc | ../om/swrad_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/Pair_nam_3hourly_MAB_and_GoM_2014.nc | ../om/Pair_nam_3hourly_MAB_and_GoM_2015.nc | ../om/Pair_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/Tair_nam_3hourly_MAB_and_GoM_2014.nc | ../om/Tair_nam_3hourly_MAB_and_GoM_2015.nc | ../om/Tair_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/Qair_nam_3hourly_MAB_and_GoM_2014.nc | ../om/Qair_nam_3hourly_MAB_and_GoM_2015.nc | ../om/Qair_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/rain_nam_3hourly_MAB_and_GoM_2014.nc | ../om/rain_nam_3hourly_MAB_and_GoM_2015.nc | ../om/rain_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/Uwind_nam_3hourly_MAB_and_GoM_2014.nc | ../om/Uwind_nam_3hourly_MAB_and_GoM_2015.nc | ../om/Uwind_nam_3hourly_MAB_and_GoM_2016.nc \ ../om/Vwind_nam_3hourly_MAB_and_GoM_2014.nc | ../om/Vwind_nam_3hourly_MAB_and_GoM_2015.nc | ../om/Vwind_nam_3hourly_MAB_and_GoM_2016.nc !------------------------------------------------------------------------------ ! DATA model export to the Atmosphere Model. !------------------------------------------------------------------------------ nDataExport(atmos) == 0 ! number of fields to export nDataFiles(atmos) == 0 ! number of NetCDF files to process DataExport(atmos) == NONE DataFiles(atmos) == data2atm.nc !------------------------------------------------------------------------------ ! DATA model Export to the Sea Ice Model. !------------------------------------------------------------------------------ nDataExport(seaice) == 0 ! number of fields to export nDataFiles(seaice) == 0 ! number of NetCDF files to process DataExport(seaice) == NONE DataFiles(seaice) == data2ice.nc !------------------------------------------------------------------------------ ! DATA model Export to the Wave Model. !------------------------------------------------------------------------------ nDataExport(waves) == 0 ! number of fields to export nDataFiles(waves) == 0 ! number of NetCDF files to process DataExport(waves) == NONE DataFiles(waves) == data2wav.nc ! !============================================================================== ! GLOSSARY: !============================================================================== ! ! Currently, coupling is only possible with four Earth System model (ESM) ! components: ocean, atmosphere, sea-ice, wave models. Other type models ! added by writing the respective CAP file. Some of the KEYWORD entries ! are expected with generic component label in parenthesis: ! ! Keyword(roms) Always a component ROMS ! Keyword(atmos) atmosphere model COAMPS, RegCM, WRF ! Keyword(seaice) sea-ice model CICE ! Keyword(waves) wave model RED/DIF, SWAN, WAM ! Keyword(data) data model ! !------------------------------------------------------------------------------ ! Input filenames. !------------------------------------------------------------------------------ ! ! CPL_name Coupling import/export variables metadata filename. ! ! INPname Coupled models components standard input script or namelist ! filenames: ! ! INPname(roms) ROMS input script ! INPname(atmos) Atmosphere model input script ! INPname(seaice) Sea-ice model input script ! INPname(waves) Wave model input script ! !------------------------------------------------------------------------------ ! Coupled model parameters. !------------------------------------------------------------------------------ ! ! IsActive Logical switch (T/F) indicating if an Earth System Model ! (ESM) component is active or not. It is also used to ! process some coupling parameters specified in this ! input script. ! ! IsActive(roms) Activate coupling to ROMS. If nesting, ! enter NgridsR values. The first value ! must be TRUE always. The user has the ! choice to activate or not a particular ! nested grid. By the default, NgridsR=1. ! ! IsActive(atmos) Activate coupling to atmosphere model. ! If nesting, enter NgridsA values. The ! first value must be TRUE always. The ! user has the choice to activate or not ! a particular nested grid. By default, ! NgridsA=1. ! ! IsActive(seaice) Activate coupling to sea-ice model. ! If nesting, enter NgridsI values. The ! first value must be TRUE always. The ! user has the choice to activate or not ! a particular nested grid. By default, ! NgridsI=1. ! ! IsActive(waves) Activate coupling to wave model. If ! If nesting, enter NgridsW values. The ! first value must be TRUE always. The ! user has the choice to activate or not ! a particular nested grid. By default, ! NgridsW=1. ! ! IsActive(data) Activate coupling to a DATA model. It is ! used to provide data to ESM components ! uncoupled fields or to provide values at ! locations not imported because of ! noncoincident grids. ! ! For example: ! ! If just coupling ROMS-CICE, the DATA ! model provides all the atmosphere ! forcing fields required by CICE. ! ! If atmosphere and ocean models grids ! are not coincident, the DATA model ! provides SST on locations not covered ! by the usually smaller ocean grid. ! ! ESMF/NUOPC does not provide an elegant and straight way to ! coupled nested grids. The current design is to treat each ! nested grid as a unique coupled ESM component (see ! esmf_esm.F, esmf_roms.F, etc). ! ! If nesting, provide as many values to IsActive(xxxx) as ! needed for each nested grid. The order of the values is ! important. If only one value is set, only the application ! main grid is coupled. ! ! Coupled Logical switch indicating which ESM components are connected ! during coupling (T/F). It is used by ESMF to stablish the ! coupling run sequence. ! ! Coupled(OCN-ATM) ROMS-atmosphere connected ! Coupled(OCN-DAT) ROMS-data connected ! Coupled(OCN-ICE) ROMS-seaice connected ! Coupled(OCN-WAV) ROMS-wave connected ! Coupled(ATM-DAT) atmosphere-data connected ! Coupled(ATM-ICE) atmosphere-seaice connected ! Coupled(ATM-WAV) atmosphere-wave connected ! Coupled(ICE-DAT) seaice-data connected ! Coupled(ICE-WAV) seaice-wave connected ! Coupled(WAV-DAT) wave-data connected ! ! CouplingType Model coupling type (check Glossary): ! ! CouplingType = 1 Explicit coupling ! CouplingType = 2 Semi-Implicit coupling ! ! In explicit coupling, the exchange fields at the next ! time-step (n+1) are defined using known values from the ! time-step (n) before it. Explicit methods require less ! computational effort and are accurate for small coupling ! time-steps. ! ! In implicit coupling, the exchange fields at the next ! time-step (n+1) are defined by including values at the ! next time-step (n+1). Implicit methods are stable and ! allow longer coupling time-steps but are expensier. ! ! In semi-implicit coupling, the exchange in one direction ! is explicit and in the reverse direction is implicit. For ! example: ! ! ROMS -> ATM Explicit exchange ! ATM -> ROMS Implicit exchange ! ! PETlayoutOption Persistent Execution Thread (PET) layout option; ! ! PETlayoutOption = 0 Sequential, coupled models are ! executed on all the specified PETs ! ! PETlayoutOption = 1 Concurrent, coupled models are ! executed on non-overlapping set of ! PETs ! ! ItileD Number of domain partitions in the I-direction (lon axis). ! It must be equal to or greater than one. ! ! JtileD Number of domain partitions in the J-direction (lat axis). ! It must be equal to or greater than one. ! ! Nthreads Number of PETs assigned to each model in the coupled system: ! ! Nthreads(roms) ROMS PETs ! Nthreads(atmos) Atmosphere model PETs ! Nthreads(seaice) Sea-ice model PETs ! Nthreads(waves) Wave model PETs ! ! Only the PET values for IsActive(...)=T are processed and ! considered. ! ! If sequential layout (PETlayoutOption=0), assign the same ! number of PETs to all coupled models. ! ! If concurrent layout (PETlayoutOption=1), the number of ! PETs needed is the sum of all active coupled model ! components. ! ! WeightDAT Weighted average coefficient for DATA component field. ! ! WeightESM Weighted average coefficient for ESM component field. ! ! The weighted average coefficients are used for merging ! fields from DATA and ESM components. Both coefficients ! are positive and MUST add to unity: ! ! WeightDAT + WeightESM = 1.0d0 ! ! Recall that the DATA component supplies needed data to ! a particular ESM component. For example, it may export ! data to the atmosphere model at locations not covered ! by the other ESM components because of smaller grid ! coverage. If the atmosphere and ocean model grids ! are incongruent, the atmosphere component needs to ! import sea surface temperature (SST) on those grid ! points not covered by the ocean component. Thus, the ! weightind coefficient are used to merge the SST data. ! ! DebugLevel Coupling debugging flag: ! ! [0] no debug ! [1] reports informative messages ! [2] <1> plus writes grid information in VTK format ! [3] <2> plus writes exchange fields into NetCDF files ! (it generates lots of small NetCDF files) ! ! TraceLevel Execution tracing flag: ! ! [0] no tracing ! [1] reports run sequence of coupling subroutine calls ! [2] <1> plus writes voluminous ESMF library tracing ! information which slowdown performace, and ! creates large log file ! !------------------------------------------------------------------------------ ! Time Managing. !------------------------------------------------------------------------------ ! ! The next four parameters are specified in terms of six integers vector as: ! [YYYY MM DD hh mm ss], where ! ! YYYY year of the century (integer) ! MM month of the year: 1 - 12 (integer) ! DD day of the month (integer) ! hh hour of the day: 1 - 23 (integer) ! mm minutes of the hour: 1 - 59 (integer) ! ss secound of the minute: 1 - 59 (integer) ! ! ReferenceTime ESM driver reference time for simulation. Usually, the ! ESM component measure time in seconds or days since ! the reference date [YYYY MM DD hh mm ss] ! ! StartTime ESM driver starting time of coupling simulation. ! [YYYY MM DD hh mm ss] ! ! RestartTime ESM driver re-start time of coupling simulation. If not ! restarting, set RestartTime to the same value as ! StartTime. ! [YYYY MM DD hh mm ss] ! ! StartTime ESM driver stopping time for coupling simulation. ! [YYYY MM DD hh mm ss] ! ! TimeStep ESM driver coupling interval. Use the largest value for ! the field (Import/Export) exchange between activated ! ESM components. ! [YYYY MM DD hh mm ss] ! ! Calendar ESM driver day calendar: ! ! gregorian Gregorian Calendar (adapted Oct 15, 1528) ! year_360_day 360 days per year, 30 days per month ! ! TimeFrac Coupling time interval fraction (INTEGER) from driver ! TimeStep indicating how often the exchange of information ! between ESM components occurs. That is, the coupling ! interval between ESM components is TimeStep/TimeFrac. ! If coupling ROMS (OCN) nested grids, [Ngrids] values are ! expected. ! ! TimeFrac(OCN-ATM) ROMS-atmosphere coupling interval ! TimeFrac(OCN-DAT) ROMS-data coupling interval ! TimeFrac(OCN-ICE) ROMS-seaice coupling interval ! TimeFrac(OCN-WAV) ROMS-wave coupling interval ! TimeFrac(ATM-DAT) atmosphere-data coupling interval ! TimeFrac(ATM-ICE) atmosphere-seaice coupling interval ! TimeFrac(ATM-WAV) atmosphere-wave coupling interval ! TimeFrac(ICE-DAT) seaice-data coupling interval ! TimeFrac(ICE-WAV) seaice-wave coupling interval ! TimeFrac(WAV-DAT) wave-data coupling interval ! ! For example, if TimeStep = 15 minutes = 900 seconds and ! TimeFrac = 3, the coupling exchange between those two ! components is: ! ! TimeStep/TimeFrac = 5 minutes = 300 seconds ! ! I recommed always to think in terms of seconds. If ! coupling OCN-ATM, you need to consider the time-step ! size (DT) of both models and physics to determine the ! values of TimeStep and TimeFrac. ! ! The ATM model requires smaller DT because of fluid ! associated radius of deformation (RD). The ATM (air) has ! a much larger value (RD ~ 1000 km) while OCN (seawater) ! has a much smaller value (RD ~ 100 km). Therefore, the ! dynamics of the ATM are faster and require smaller DT. ! Contrarily, the dynamics of the OCN is slower and can be ! resolved with larger DT. ! !------------------------------------------------------------------------------ ! Export/Import fields name codes to process. !------------------------------------------------------------------------------ ! ! Export/Import fields names (abbreviated string codes). Currently, the ! following fields below are processed. However, the list can be expanded ! easly. ! ! The full metadata for these fields is defined in "coupling_esmf.dat". ! ! Nimport(...) Number of import fields per model, [1:Nmodels] KEYWORD ! entries are expected with the label code in parenthesis. ! Set to zero if no fields to import by a particular model. ! ! Nimport(ocean) = ? Ocean model ! Nimport(atmos) = ? Atmosphere model ! Nimport(seaice) = ? Sea-ice model ! Nimport(waves) = ? Wave model ! ! Import(...) Import fields codes per model, Nimport(...) string codes ! are expected. If Nimport(...) = 0, set Import = NONE. ! ! Nexport(...) Number of export fields per model, [1:Nmodels] KEYWORD ! entries are expected with the label code in parenthesis. ! Set to zero if no fields to export by a particular model. ! ! Nexport(ocean) = ? Ocean model ! Nexport(atmos) = ? Atmosphere model ! Nexport(seaice) = ? Sea-ice model ! Nexport(waves) = ? Wave model ! ! Export(...) Export fields codes per model, Nexport(...) string codes ! are expected. If Nexport(...) = 0, set Export = NONE. ! !============================================================================== ! DATA Model parameters. ! ! The USER has the option to enter a filename for each export field and ! further split data by time records into multiple files. If nested grids, ! the USER may provide a different set of filenames for each grid. The DATA ! model will scan the file list and will read the needed data from the first ! file in the list containing the export field. Therefore, the order of the ! filenames is critical. !============================================================================== ! ! nDataExport(roms) The number of fields to export from DATA Model to ! ROMS component. If zero value, exporting of fields ! to ROMS is not needed and the associated values in ! DataExport(roms) and DataFiles(roms) are ignored. ! ! nDataFiles(roms) The number of NetCDF files that the DATA Model needs ! to process to export fields to ROMS. ! ! DataExport(roms) Field short name string to read and export to ROMS ! component, nDataExport(roms) values are expected. ! ! DataFiles(roms) NetCDF filenames containing the field to export to ! ROMS component, nDataFiles(roms) are expected. ! ! Currently, this feature is used to debug the Data Model since ROMS has its ! own data managing infrastructure via input NetCDF files. It will be use ! in the future for hybrid nesting to get export open boundary data from ! larger scale ocean component. ! !------------------------------------------------------------------------------ ! ! nDataExport(atmos) The number of fields to export from DATA Model to the ! Atmosphere Model component. If zero value, exporting ! of fields to Atmosphere Model is not needed and the ! associated values in DataExport(atmos) and ! DataFiles(atmos) are ignored. ! ! nDataFiles(atmos) The number of NetCDF files that the DATA Model needs ! to process to export fields to the Atmosphere Model ! component ! ! DataExport(atmos) Field short name string to read and export to the ! Atmosphere Model component, nDataExport(atmos) ! values are expected. ! ! DataFiles(atmos) NetCDF filenames containing the field to export to ! the Atmosphere Model component, nDataFiles(atmos) ! are expected. ! ! For Example, we may need sea surface temperature at atmosphere model grid ! points not covered by ROMS application. ! ! nDataExport(atmos) == 1 ! ! nDataFiles(atmos) == 1 ! ! DataExport(atmos) == SST ! ! DataFiles(atmos) == sst_day1.nc | ! sst_day2.nc | ! sst_day3.nc ! !------------------------------------------------------------------------------ ! ! nDataExport(seaice) The number of fields to export from DATA Model to the ! Sea Ice Model component. If zero value, exporting ! of fields to Sea Ice Model is not needed and the ! associated values in DataExport(seaice) and ! DataFiles(seaice) are ignored. ! ! nDataFiles(seaice) The number of NetCDF files that the DATA Model needs ! to process to export fields to the Sea Ice Model ! component. ! ! DataExport(seaice) Field short name string to read and export to the ! Sea Ice Model component, nDataExport(seaice) ! values are expected. ! ! DataFiles(seaice) NetCDF filenames containing the field to export to ! the Sea Ice Model component, nDataFiles(seaice) ! are expected. ! ! For Example, CICE does not have an input data infrastructure and need the ! atmospheric forcing fields when coupling only to th ROMS component. ! ! nDataExport(seaice) == 9 ! ! nDataFiles(seaice) == 2 ! ! DataExport(seaice) == rhoa \ ! potT \ ! flw \ ! swvdr \ ! swvdf \ ! swidr \ ! swidf \ ! frain \ ! fsnow ! ! DataFiles(seaice) == cice_forcing1.nc \ ! cice_forcing2.nc ! !------------------------------------------------------------------------------ ! ! nDataExport(waves) The number of fields to export from DATA Model to the ! Wave Model component. If zero value, exporting of ! fields to Wave Model is not needed and the ! associated values in DataExport(waves) and ! DataFiles(waves) are ignored. ! ! nDataFiles(waves) The number of NetCDF files that the DATA Model needs ! to process to export fields to the Wave Model ! component. ! ! DataExport(waves) Field short name string to read and export to the ! Wave Model component, nDataExport(waves) ! values are expected. ! ! DataFiles(waves) NetCDF filenames containing the field to export to ! the Wave Model component, nDataFiles(waves) ! are expected. ! ! For Example, the wave model needs to get wind and wind stress component from ! the DATA Model: ! ! nDataExport(waves) == 4 ! ! nDataFiles(waves) == 2 ! ! DataExport(waves) == Uwind \ ! Vwind \ ! Ustr \ ! Vstr ! ! DataFiles(waves) == wind_month1.nc | ! wind_month2.nc | ! wind_month3.nc \ ! stress_month1.nc | ! stress_month2.nc | ! stress_month3.nc !