123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- \clearpage
- \section{Sea ice and ocean modules}
- This section describes the modules that represent sea ice and ocean and
- the necessary interfaces between these modules and the atmospheric modules.
- Conceptually, the sea ice model lies inbetween the atmosphere model and
- the ocean model.
- Thus, the PUMA main part and the ocean model are both coupled to the
- sea ice model, but not directly to each other.
- The sea ice model decides whether a given gridpoint is covered with ice
- or not, in the latter case, it merely functions as passing the ocean
- fluxes to the atmosphere and vice versa.
- The parameters that are exchanged are listed in Table \ref{eiscpltab}.
- The sea ice and ocean model use a time step of one day.
- Thus, atmospheric coupling to the sea ice model is performed
- every 32 time steps, while the sea ice and ocean model are
- coupled every time step.
- The coupling scheme is shown in Fig.\ \ref{couplefig}. Fig.\ \ref{pumaflowfig}
- shows how the subroutines are placed when no external coupler is used.
- \begin{table}[h]
- \begin{tabular}{lcc}
- \hline
- Parameter & Atmosphere $\leftarrow \, \rightarrow$ Ice
- & Ice $\leftarrow \, \rightarrow$ Ocean \\
- \hline
- Ice cover & $\leftarrow$ & $-$ \\
- Ice thickness & $\leftarrow$ & $\rightarrow$ \\
- Snow thickness & $\leftarrow$ & $\rightarrow$ \\
- Surface temperature & $\leftarrow$ & $\leftarrow$ \\
- Deep sea temperature & $-$ & $\leftarrow$ \\
- Mixed layer depth & $-$ & $\leftarrow$ \\
- Net precipitation, runoff & $\rightarrow$ & $\rightarrow$ \\
- Salinity & $-$ & $\leftarrow$ \\
- Melt and freeze volume & $-$ & $\rightarrow$ \\
- Heat fluxes & $\rightarrow$ & $\rightarrow$ \\
- d(Heat fluxes)/dT & $\rightarrow$ & $-$ \\
- Radiation & $\rightarrow$ & $-$ \\
- Wind stress & $\rightarrow$ & $\rightarrow$ \\
- \hline
- \end{tabular}
- \caption[]{Parameters to be exchanged between models.
- Arrows denote the direction in which the parameter is passed,
- e.g. the atmosphere receives ice cover information from the ice model.}
- \label{eiscpltab}
- \end{table}
- \begin{figure}[p]
- \vspace{-2cm}
- \includegraphics[width={14cm}]{Pics/modules_icemod_couple}
- \caption[]{Schematic illustration of the model coupling.}
- \label{couplefig}
- \end{figure}
- \begin{figure}[p]
- \vspace{-2cm}
- \includegraphics[width={14cm}]{Pics/modules_icemod_pumaflow}
- \caption[]{Subroutine flow when no external coupler is used.}
- \label{pumaflowfig}
- \end{figure}
- %----------------------------------------------------------------------------
- \clearpage
- \begin{center}
- \begin{tabular}{|p{14cm}|}
- \hline
- \vspace{-5mm} \section{icemod.f90} \vspace{-5mm} \\
- \hline
- \vspace{1mm} {\bf General} The module {\module icemod.f90}
- contains subroutines to compute sea ice cover and thickness.
- The interface to the main PLASIM module is given by the subroutine
- {\sub icestep}, which is called by {\sub cplexchange\verb#_#ice}
- (defined in {\module intermod\verb#_#atm.f90}), which is called by
- {\sub seastep} (defined in {\module seamod.f90}). \vspace{3mm} \\
- \hline
- \vspace{1mm} {\bf Input/Output} {\module icemod.f90} requires the file
- {\file ice\verb#_#flxcor} if NFLXCORR is set to a negative value.
- If NOUTPUT is set to 1, the output files {\file fort.75} containing
- global fields of ice model data and the file {\file fort.76}
- containing diagnostic ice data are produced (for details,
- see the reference manual). Both output files are in service format.
- The module is controlled by the namelist {\nam icepar} in the file
- {\file ice\verb#_#namelist}. \vspace{1mm} \\
- \begin{tabular}{p{3cm} p{2cm} p{6cm} p{2cm}}
- Parameter & Type & Purpose & default \\
- NDIAG & INTEGER & Diagnostic output every NDIAG time steps & 160 \\
- NOUT & INTEGER & Model data output every NOUT time steps & 32 \\
- NOUTPUT & INTEGER & Icemodel output (0=no,1=yes) & 1 \\
- NFLXCORR & INTEGER & Time constant for restoring $(>0)$, no flux correction $(=0)$, use fluxcorrection from file $(<0)$ & $360\,d$ \\
- \end{tabular} \vspace{3mm} \\
- \hline
- \vspace{2mm} {\bf Structure} {\module icemod.f90} uses the module
- {\modu icemod} which is not dependent on the module {\modu pumamod}.
- Subroutine {\sub iceini} reads the namelist and, when required,
- the flux correction from the file {\file ice\verb#_#flxcor}.
- Subroutine {\sub icestep} calls {\sub cplexchange\verb#_#atmos}
- (defined in {\module intermod\verb#_#ice}) to get the atmospheric
- forcing fields. If the {\nam sea\verb#_#namelist} parameter NICE is
- set to 1, the subroutine {\sub subice} is called, which calculates
- ice cover and thickness. Otherwise, climatological data, interpolated
- to the current time step by {\sub iceget} are used. If an ice cover
- is present, the surface temperature is calculated in {\sub skintemp}.
- Otherwise, the surface temperature is set to the sea surface temperature
- calculated by the ocean model. Every NCPL\verb#_#ICE\verb#_#OCEAN
- (defined in {\nam sea\verb#_#namelist}) time steps, the external
- subroutine {\sub cplexchange\verb#_#ocean} (defined in
- {\module intermod\verb#_#ice}) is called to pass the atmospheric
- forcing to and retrieve oceanic data from the ocean module
- {\module oceanmod.f90}. The oceanic data is used for ice calculations
- in the next time step. \vspace{3mm} \\
- \hline
- \end{tabular}
- \end{center}
- %--------------------------------------------------------------------------------
- \clearpage
- \begin{center}
- \begin{tabular}{|p{14cm}|}
- \hline
- \vspace{-5mm} \section{oceanmod.f90} \vspace{-5mm} \\
- \hline
- \vspace{1mm} {\bf General} The module {\module oceanmod.f90} contains
- a mixed layer ocean model, i.e. subroutines to compute sea surface
- temperature and mixed layer depth. The interface to the main PLASIM
- module is via the module {\module icemod.f90} given by the subroutine
- {\sub oceanstep}, which is called by {\sub cplexchange\verb#_#ocean}
- (defined in {\module intermod\verb#_#ice}). \vspace{3mm} \\
- \hline
- \vspace{1mm} {\bf Input/Output} {\module oceanmod.f90} requires the file {\file ocean\verb#_#flxcor} if NFLXCORRSST or NFLXCORRMLD is set to a negative value. If NOUTPUT is set to 1, the output file {\file fort.31} containing global fields of ocean model data in service format is produced (for details, see the ice modul section of the reference guide). The module is controlled by the namelist {\nam oceanpar} in the file {\file ocean\verb#_#namelist}. \vspace{1mm} \\
- \begin{tabular}{p{3cm} p{2cm} p{6cm} p{2cm}}
- Parameter & Type & Purpose & default \\
- NDIAG & INTEGER & Diagnostic output every NDIAG time steps & 480 \\
- NOUT & INTEGER & Model data output every NOUT time steps & 32 \\
- NOUTPUT & INTEGER & Oceanmodel output (0=no,1=yes) & 1 \\
- NFLXCORRMLD & INTEGER & Time constant for restoring mixed layer depth $(>0)$, no flux correction $(=0)$, use fluxcorrection from file $(<0)$ & $60\,d$ \\
- NFLXCORRSST & INTEGER & Time constant for restoring sea surface temperature $(>0)$, no flux correction $(=0)$, use fluxcorrection from file $(<0)$ & $60\,d$ \\
- \end{tabular} \vspace{3mm} \\
- \hline
- \vspace{2mm} {\bf Structure} {\module oceanmod.f90} uses the module
- {\modu oceanmod} which is not dependent on the module {\modu pumamod}.
- Subroutine {\sub oceanini} reads the namelist and, when required,
- the flux corrections from the file {\file ocean\verb#_#flxcor}.
- Subroutine {\sub oceanstep} calls {\sub mixocean}, which calculates
- mixed layer depth and temperature. If an ice cover is present, mixed
- layer depth is set to the climatological value and the sea surface
- temperature is set to the freezing temperature. For details of the
- mixed layer model, see the Planet Simulator Reference Manual. \vspace{3mm} \\
- \hline
- \end{tabular}
- \end{center}
- %------------------------------------------------------------------------
|