& ESMF/NUOPC Documentation

ESMF Fortran Reference Documentation:
http://www.earthsystemmodeling.org/esmf_releases/non_public/ESMF_7_0_1/ESMF_refdoc/

NUOPC Layer Reference:
http://www.earthsystemmodeling.org/esmf_releases/non_public/ESMF_7_0_1/NUOPC_refdoc/

NUOPC Layer Documents:
https://earthsystemcog.org/projects/nuopc/




& Test coupled application

esmApp.F90: coupled application main program
esm.F90: coupled application driver component
con.F90: coupled application connector component
mdl.F90: coupled application model components (ATM, OCN, or ICE)
dum.F90: dummy model component
utl.F90: utilities module
Makefile: the 

The WAV model component is Wavewatch (wmesmfmd.ftn).

The ATM, OCN, and ICE components read in and export forcing fields required
by the WAV model.  The connector components (ATM->WAV, OCN->WAV, ICE->WAV)
defined in con.F90 setup and execute the required data transforms (regrid or
redist).  The driver component (esm.F90) creates the model components and
connector components and sets up the run sequence.

Set ESMFMKFILE environment variable to point to the "esmf.mk" Makefile fragment.

The default target will create a wwatch3.env environment file and switch file
in the bin directory and then compile ww3_multi_esmf.

The ww3_multi_esmf target is used by regtest/bin/run_test when invoked with the
'-z' option.




& Compiling WW3 ESMF component

bin/w3_make ww3_multi_esmf does not create an executable, rather it compiles the
ww3 esmf module (wmesmfmd), creates an object archive (libww3_esmf_multi.a) and
the ESMF/NUOPC makefile fragment (nuopc.mk)

ESMFMKFILE is required to get the ESMF compile options.  Specifically,
ESMF_F90COMPILEPATHS is used in comp to set the include paths required for the
ESMF modules.

The ESMF build requires DIST switch.




& The WW3 ESMF component (wmesmfmd.ftn)

Source code uses "Camel Case" convention.
