modules_heiko.tex 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. \clearpage
  2. \section{Sea ice and ocean modules}
  3. This section describes the modules that represent sea ice and ocean and
  4. the necessary interfaces between these modules and the atmospheric modules.
  5. Conceptually, the sea ice model lies inbetween the atmosphere model and
  6. the ocean model.
  7. Thus, the PUMA main part and the ocean model are both coupled to the
  8. sea ice model, but not directly to each other.
  9. The sea ice model decides whether a given gridpoint is covered with ice
  10. or not, in the latter case, it merely functions as passing the ocean
  11. fluxes to the atmosphere and vice versa.
  12. The parameters that are exchanged are listed in Table \ref{eiscpltab}.
  13. The sea ice and ocean model use a time step of one day.
  14. Thus, atmospheric coupling to the sea ice model is performed
  15. every 32 time steps, while the sea ice and ocean model are
  16. coupled every time step.
  17. The coupling scheme is shown in Fig.\ \ref{couplefig}. Fig.\ \ref{pumaflowfig}
  18. shows how the subroutines are placed when no external coupler is used.
  19. \begin{table}[h]
  20. \begin{tabular}{lcc}
  21. \hline
  22. Parameter & Atmosphere $\leftarrow \, \rightarrow$ Ice
  23. & Ice $\leftarrow \, \rightarrow$ Ocean \\
  24. \hline
  25. Ice cover & $\leftarrow$ & $-$ \\
  26. Ice thickness & $\leftarrow$ & $\rightarrow$ \\
  27. Snow thickness & $\leftarrow$ & $\rightarrow$ \\
  28. Surface temperature & $\leftarrow$ & $\leftarrow$ \\
  29. Deep sea temperature & $-$ & $\leftarrow$ \\
  30. Mixed layer depth & $-$ & $\leftarrow$ \\
  31. Net precipitation, runoff & $\rightarrow$ & $\rightarrow$ \\
  32. Salinity & $-$ & $\leftarrow$ \\
  33. Melt and freeze volume & $-$ & $\rightarrow$ \\
  34. Heat fluxes & $\rightarrow$ & $\rightarrow$ \\
  35. d(Heat fluxes)/dT & $\rightarrow$ & $-$ \\
  36. Radiation & $\rightarrow$ & $-$ \\
  37. Wind stress & $\rightarrow$ & $\rightarrow$ \\
  38. \hline
  39. \end{tabular}
  40. \caption[]{Parameters to be exchanged between models.
  41. Arrows denote the direction in which the parameter is passed,
  42. e.g. the atmosphere receives ice cover information from the ice model.}
  43. \label{eiscpltab}
  44. \end{table}
  45. \begin{figure}[p]
  46. \vspace{-2cm}
  47. \includegraphics[width={14cm}]{Pics/modules_icemod_couple}
  48. \caption[]{Schematic illustration of the model coupling.}
  49. \label{couplefig}
  50. \end{figure}
  51. \begin{figure}[p]
  52. \vspace{-2cm}
  53. \includegraphics[width={14cm}]{Pics/modules_icemod_pumaflow}
  54. \caption[]{Subroutine flow when no external coupler is used.}
  55. \label{pumaflowfig}
  56. \end{figure}
  57. %----------------------------------------------------------------------------
  58. \clearpage
  59. \begin{center}
  60. \begin{tabular}{|p{14cm}|}
  61. \hline
  62. \vspace{-5mm} \section{icemod.f90} \vspace{-5mm} \\
  63. \hline
  64. \vspace{1mm} {\bf General} The module {\module icemod.f90}
  65. contains subroutines to compute sea ice cover and thickness.
  66. The interface to the main PLASIM module is given by the subroutine
  67. {\sub icestep}, which is called by {\sub cplexchange\verb#_#ice}
  68. (defined in {\module intermod\verb#_#atm.f90}), which is called by
  69. {\sub seastep} (defined in {\module seamod.f90}). \vspace{3mm} \\
  70. \hline
  71. \vspace{1mm} {\bf Input/Output} {\module icemod.f90} requires the file
  72. {\file ice\verb#_#flxcor} if NFLXCORR is set to a negative value.
  73. If NOUTPUT is set to 1, the output files {\file fort.75} containing
  74. global fields of ice model data and the file {\file fort.76}
  75. containing diagnostic ice data are produced (for details,
  76. see the reference manual). Both output files are in service format.
  77. The module is controlled by the namelist {\nam icepar} in the file
  78. {\file ice\verb#_#namelist}. \vspace{1mm} \\
  79. \begin{tabular}{p{3cm} p{2cm} p{6cm} p{2cm}}
  80. Parameter & Type & Purpose & default \\
  81. NDIAG & INTEGER & Diagnostic output every NDIAG time steps & 160 \\
  82. NOUT & INTEGER & Model data output every NOUT time steps & 32 \\
  83. NOUTPUT & INTEGER & Icemodel output (0=no,1=yes) & 1 \\
  84. NFLXCORR & INTEGER & Time constant for restoring $(>0)$, no flux correction $(=0)$, use fluxcorrection from file $(<0)$ & $360\,d$ \\
  85. \end{tabular} \vspace{3mm} \\
  86. \hline
  87. \vspace{2mm} {\bf Structure} {\module icemod.f90} uses the module
  88. {\modu icemod} which is not dependent on the module {\modu pumamod}.
  89. Subroutine {\sub iceini} reads the namelist and, when required,
  90. the flux correction from the file {\file ice\verb#_#flxcor}.
  91. Subroutine {\sub icestep} calls {\sub cplexchange\verb#_#atmos}
  92. (defined in {\module intermod\verb#_#ice}) to get the atmospheric
  93. forcing fields. If the {\nam sea\verb#_#namelist} parameter NICE is
  94. set to 1, the subroutine {\sub subice} is called, which calculates
  95. ice cover and thickness. Otherwise, climatological data, interpolated
  96. to the current time step by {\sub iceget} are used. If an ice cover
  97. is present, the surface temperature is calculated in {\sub skintemp}.
  98. Otherwise, the surface temperature is set to the sea surface temperature
  99. calculated by the ocean model. Every NCPL\verb#_#ICE\verb#_#OCEAN
  100. (defined in {\nam sea\verb#_#namelist}) time steps, the external
  101. subroutine {\sub cplexchange\verb#_#ocean} (defined in
  102. {\module intermod\verb#_#ice}) is called to pass the atmospheric
  103. forcing to and retrieve oceanic data from the ocean module
  104. {\module oceanmod.f90}. The oceanic data is used for ice calculations
  105. in the next time step. \vspace{3mm} \\
  106. \hline
  107. \end{tabular}
  108. \end{center}
  109. %--------------------------------------------------------------------------------
  110. \clearpage
  111. \begin{center}
  112. \begin{tabular}{|p{14cm}|}
  113. \hline
  114. \vspace{-5mm} \section{oceanmod.f90} \vspace{-5mm} \\
  115. \hline
  116. \vspace{1mm} {\bf General} The module {\module oceanmod.f90} contains
  117. a mixed layer ocean model, i.e. subroutines to compute sea surface
  118. temperature and mixed layer depth. The interface to the main PLASIM
  119. module is via the module {\module icemod.f90} given by the subroutine
  120. {\sub oceanstep}, which is called by {\sub cplexchange\verb#_#ocean}
  121. (defined in {\module intermod\verb#_#ice}). \vspace{3mm} \\
  122. \hline
  123. \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} \\
  124. \begin{tabular}{p{3cm} p{2cm} p{6cm} p{2cm}}
  125. Parameter & Type & Purpose & default \\
  126. NDIAG & INTEGER & Diagnostic output every NDIAG time steps & 480 \\
  127. NOUT & INTEGER & Model data output every NOUT time steps & 32 \\
  128. NOUTPUT & INTEGER & Oceanmodel output (0=no,1=yes) & 1 \\
  129. NFLXCORRMLD & INTEGER & Time constant for restoring mixed layer depth $(>0)$, no flux correction $(=0)$, use fluxcorrection from file $(<0)$ & $60\,d$ \\
  130. NFLXCORRSST & INTEGER & Time constant for restoring sea surface temperature $(>0)$, no flux correction $(=0)$, use fluxcorrection from file $(<0)$ & $60\,d$ \\
  131. \end{tabular} \vspace{3mm} \\
  132. \hline
  133. \vspace{2mm} {\bf Structure} {\module oceanmod.f90} uses the module
  134. {\modu oceanmod} which is not dependent on the module {\modu pumamod}.
  135. Subroutine {\sub oceanini} reads the namelist and, when required,
  136. the flux corrections from the file {\file ocean\verb#_#flxcor}.
  137. Subroutine {\sub oceanstep} calls {\sub mixocean}, which calculates
  138. mixed layer depth and temperature. If an ice cover is present, mixed
  139. layer depth is set to the climatological value and the sea surface
  140. temperature is set to the freezing temperature. For details of the
  141. mixed layer model, see the Planet Simulator Reference Manual. \vspace{3mm} \\
  142. \hline
  143. \end{tabular}
  144. \end{center}
  145. %------------------------------------------------------------------------