Opened 4 years ago

Closed 4 years ago

#827 closed upgrade (Done)

IMPORTANT: ESM Run Sequence from Configuration File

Reported by: arango Owned by:
Priority: major Milestone: Release ROMS/TOMS 3.8
Component: Coupling Version: 3.8
Keywords: Cc:

Description

  • The ESM run sequence is now set, by default, from a new input configuration file (Keyword: CONFname) in the coupling standard input script (coupling_esmf.in). It is a more elegant option than the hundreds, if not thousands, lines of code in module esmf_esm.F. It will facilitate complex RunSequence execution with more than one-time loop (time slots) and an increased number of coupled components. The NUOPC layer generates the RunSequence automatically. It can be changed without recompiling. It also facilitates updates to newer versions of the ESMF/NUOPC library.
  • Examples of RunSequence templates are provided for coupling ROMS to either COAMPS or WRF explicitly or semi-implicitly:
    • ESM/coamps_explicit.runconfig
    • ESM/coamps_implicit.runconfig
    • ESM/wrf_explicit.runconfig
    • ESM/wrf_implicit.runconfig

For the DATA-WRF-ROMS semi-implicit coupling with a single time loop (denoted by the at symbol @), we have:

#
# svn $Id$
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
# Copyright (c) 2002-2019 The ROMS/TOMS Group                           :::
#   Licensed under a MIT/X style license                                :::
#   See License_ROMS.txt                                                :::
#::::::::::::::::::::::::::::::::::::::::::::::::::::: Hernan G. Arango :::
#                                                                       :::
# DATA-WRF-ROMS semi-implicit ESMF coupling:                            :::
#                                                                       :::
# This ESMF configuration file includes the Run Sequence to couple      :::
# DATA, WRF, and ROMS components. All the components interact with      :::
# the same coupling time step. The connector from ROMS to WRF is        :::
# explicit, whereas the connector from WRF to ROMS is semi-implicit.    :::
# Usually, the timestep of the atmosphere kernel is smaller than that   :::
# for the ocean. Therefore, WRF export files are time-averaged over     :::
# the coupling interval, which is the same as the ROMS timestep. It     :::
# is semi-implicit because ROMS right-hand-side terms are forced with   :::
# n+1/2 WRF fields because of the time-averaging.                       :::
#                                                                       :::
# The time-averaging is activated with WRF_TIMEAVG in the ROMS build    :::
# script. The WRF "namelist.input" needs to include the parameters      :::
# for the RAMS averaged diagnostics in the &time_control section.       :::
# The User needs to check that the single coupling interval specified   :::
# here is the same as for the ROMS coupling standard input script       :::
# (keyword TimeStep).                                                   :::
#                                                                       :::
# It is not necessary to specify options to the connectors here for     :::
# the "remapMethod" since it is specified in the input coupling         :::
# metada file (keyword CPLname) for each exchanged field.               :::
#                                                                       :::
# The component label is specific to how is known in the ESMF driver.   :::
# It is set in subroutine allocate_esmf_esm, variable MODELS(:)%name.   :::
#                                                                       :::
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

# Hurricane Irene Application

runSeq::
  @60                        # 1 min coupling time step, single time loop
    DATA -> WRF_01           # DATA to WRF connector
    DATA
    ROMS_01 -> WRF_01        # ROMS to WRF connector
    WRF_01
    WRF_01 -> ROMS_01        # WRF to ROMS connector
    ROMS_01
  @
::

As you can see, the syntax is straightforward and implies thousands of line of code that we can avoid. See NUOPC_refdoc_*.doc for details about the synthax. The User needs to make sure that the coupling time step in seconds (@60) has the same value of TimeStep specified in coupling_esmf.in:

! 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 =  2011 08 27 00 00 00   ! Simulation start time
       RestartTime =  2011 08 27 00 00 00   ! Simulation restart time
          StopTime =  2011 08 29 00 00 00   ! Simulation stop time
          TimeStep =  0000 00 00 00 01 00   ! Coupler driver interval (60 sec ROMS DT)

Here, ROMS DT=60 and larger than the one for WRF. Therefore, the exchange of fields between DATA, WRF, and ROMS components is done every 60 seconds. The execution will stop if both values are not the same.

  • A new C-preprocessing option NO_ESMF_CONFIG to preserve the hundreds of line of coding in esmf_esm.F. Such code and option will be removed in the future.

Change History (1)

comment:1 by arango, 4 years ago

Resolution: Done
Status: newclosed
Note: See TracTickets for help on using tickets.