\hypertarget{namespacemom__marine__ice}{}\section{mom\+\_\+marine\+\_\+ice Module Reference}
\label{namespacemom__marine__ice}\index{mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}}


\subsection{Detailed Description}
Routines incorporating the effects of marine ice (sea-\/ice and icebergs) into the ocean model dynamics and thermodynamics. \subsection*{Data Types}
\begin{DoxyCompactItemize}
\item 
type \mbox{\hyperlink{structmom__marine__ice_1_1marine__ice__cs}{marine\+\_\+ice\+\_\+cs}}
\begin{DoxyCompactList}\small\item\em Control structure for M\+O\+M\+\_\+marine\+\_\+ice. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \mbox{\hyperlink{namespacemom__marine__ice_af84733e6afc851704bbfd1051aea0487}{iceberg\+\_\+forces}} (G, forces, use\+\_\+ice\+\_\+shelf, sfc\+\_\+state, time\+\_\+step, CS)
\begin{DoxyCompactList}\small\item\em add\+\_\+berg\+\_\+flux\+\_\+to\+\_\+shelf adds rigidity and ice-\/area coverage due to icebergs to the forces type fields, and adds ice-\/areal coverage and modifies various thermodynamic fluxes due to the presence of icebergs. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__marine__ice_a7deb4a003d193fd5ba6614d2a683cba6}{iceberg\+\_\+fluxes}} (G, US, fluxes, use\+\_\+ice\+\_\+shelf, sfc\+\_\+state, time\+\_\+step, CS)
\begin{DoxyCompactList}\small\item\em iceberg\+\_\+fluxes adds ice-\/area-\/coverage and modifies various thermodynamic fluxes due to the presence of icebergs. \end{DoxyCompactList}\item 
subroutine, public \mbox{\hyperlink{namespacemom__marine__ice_a72f210b9737887a318aa7dd2779e8850}{marine\+\_\+ice\+\_\+init}} (Time, G, param\+\_\+file, diag, CS)
\begin{DoxyCompactList}\small\item\em Initialize control structure for M\+O\+M\+\_\+marine\+\_\+ice. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacemom__marine__ice_a7deb4a003d193fd5ba6614d2a683cba6}\label{namespacemom__marine__ice_a7deb4a003d193fd5ba6614d2a683cba6}} 
\index{mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}!iceberg\+\_\+fluxes@{iceberg\+\_\+fluxes}}
\index{iceberg\+\_\+fluxes@{iceberg\+\_\+fluxes}!mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}}
\subsubsection{\texorpdfstring{iceberg\+\_\+fluxes()}{iceberg\_fluxes()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+marine\+\_\+ice\+::iceberg\+\_\+fluxes (\begin{DoxyParamCaption}\item[{type(ocean\+\_\+grid\+\_\+type), intent(inout)}]{G,  }\item[{type(unit\+\_\+scale\+\_\+type), intent(in)}]{US,  }\item[{type(forcing), intent(inout)}]{fluxes,  }\item[{logical, intent(in)}]{use\+\_\+ice\+\_\+shelf,  }\item[{type(surface), intent(inout)}]{sfc\+\_\+state,  }\item[{real, intent(in)}]{time\+\_\+step,  }\item[{type(\mbox{\hyperlink{structmom__marine__ice_1_1marine__ice__cs}{marine\+\_\+ice\+\_\+cs}}), pointer}]{CS }\end{DoxyParamCaption})}



iceberg\+\_\+fluxes adds ice-\/area-\/coverage and modifies various thermodynamic fluxes due to the presence of icebergs. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em g} & The ocean\textquotesingle{}s grid structure\\
\hline
\mbox{\tt in}  & {\em us} & A dimensional unit scaling type\\
\hline
\mbox{\tt in,out}  & {\em fluxes} & A structure with pointers to themodynamic, tracer and mass exchange forcing fields\\
\hline
\mbox{\tt in,out}  & {\em sfc\+\_\+state} & A structure containing fields that describe the surface state of the ocean.\\
\hline
\mbox{\tt in}  & {\em use\+\_\+ice\+\_\+shelf} & If true, this configuration uses ice shelves.\\
\hline
\mbox{\tt in}  & {\em time\+\_\+step} & The coupling time step \mbox{[}s\mbox{]}.\\
\hline
 & {\em cs} & Pointer to the control structure for M\+O\+M\+\_\+marine\+\_\+ice \\
\hline
\end{DoxyParams}


Definition at line 102 of file M\+O\+M\+\_\+marine\+\_\+ice.\+F90.


\begin{DoxyCode}
102   \textcolor{keywordtype}{type}(ocean\_grid\_type), \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{       !< The ocean's grid structure}
103   \textcolor{keywordtype}{type}(unit\_scale\_type), \textcolor{keywordtype}{intent(in)}    :: US\textcolor{comment}{      !< A dimensional unit scaling type}
104   \textcolor{keywordtype}{type}(forcing),         \textcolor{keywordtype}{intent(inout)} :: fluxes\textcolor{comment}{  !< A structure with pointers to themodynamic,}
105 \textcolor{comment}{                                                  !! tracer and mass exchange forcing fields}
106   \textcolor{keywordtype}{type}(surface),         \textcolor{keywordtype}{intent(inout)} :: sfc\_state\textcolor{comment}{ !< A structure containing fields that}
107 \textcolor{comment}{                                                    !! describe the surface state of the ocean.}
108   \textcolor{keywordtype}{logical},               \textcolor{keywordtype}{intent(in)}    :: use\_ice\_shelf\textcolor{comment}{  !< If true, this configuration uses ice shelves.}
109   \textcolor{keywordtype}{real},                  \textcolor{keywordtype}{intent(in)}    :: time\_step\textcolor{comment}{   !< The coupling time step [s].}
110   \textcolor{keywordtype}{type}(marine\_ice\_CS),   \textcolor{keywordtype}{pointer}       :: CS\textcolor{comment}{      !< Pointer to the control structure for MOM\_marine\_ice}
111 
112   \textcolor{keywordtype}{real} :: fraz      \textcolor{comment}{! refreezing rate [R Z T-1 ~> kg m-2 s-1]}
113   \textcolor{keywordtype}{real} :: I\_dt\_LHF  \textcolor{comment}{! The inverse of the timestep times the latent heat of fusion times [Q-1 T-1 ~> kg J-1
       s-1].}
114   \textcolor{keywordtype}{integer} :: i, j, is, ie, js, je, isd, ied, jsd, jed
115   is = g%isc ; ie = g%iec ; js = g%jsc ; je = g%jec
116   isd = g%isd ; jsd = g%jsd ; ied = g%ied ; jed = g%jed
117   \textcolor{comment}{! This routine adds iceberg data to the ice shelf data (if ice shelf is used)}
118   \textcolor{comment}{! which can then be used to change the top of ocean boundary condition used in}
119   \textcolor{comment}{! the ocean model. This routine is taken from the add\_shelf\_flux subroutine}
120   \textcolor{comment}{! within the ice shelf model.}
121 
122   \textcolor{keywordflow}{if} (.not.\textcolor{keyword}{associated}(cs)) \textcolor{keywordflow}{return}
123   \textcolor{keywordflow}{if} (.not.(\textcolor{keyword}{associated}(fluxes%area\_berg) .and. \textcolor{keyword}{associated}(fluxes%ustar\_berg) .and. &
124             \textcolor{keyword}{associated}(fluxes%mass\_berg) ) ) \textcolor{keywordflow}{return}
125   \textcolor{keywordflow}{if} (.not.(\textcolor{keyword}{associated}(fluxes%frac\_shelf\_h) .and. \textcolor{keyword}{associated}(fluxes%ustar\_shelf)) ) \textcolor{keywordflow}{return}
126 
127 
128   \textcolor{keywordflow}{if} (.not.(\textcolor{keyword}{associated}(fluxes%area\_berg) .and. \textcolor{keyword}{associated}(fluxes%ustar\_berg) .and. &
129             \textcolor{keyword}{associated}(fluxes%mass\_berg) ) ) \textcolor{keywordflow}{return}
130   \textcolor{keywordflow}{if} (.not. use\_ice\_shelf) \textcolor{keywordflow}{then}
131     fluxes%frac\_shelf\_h(:,:) = 0.
132     fluxes%ustar\_shelf(:,:) = 0.
133 \textcolor{keywordflow}{  endif}
134   \textcolor{keywordflow}{do} j=jsd,jed ; \textcolor{keywordflow}{do} i=isd,ied ; \textcolor{keywordflow}{if} (g%areaT(i,j) > 0.0) \textcolor{keywordflow}{then}
135     fluxes%frac\_shelf\_h(i,j) = fluxes%frac\_shelf\_h(i,j) + fluxes%area\_berg(i,j)
136     fluxes%ustar\_shelf(i,j)  = fluxes%ustar\_shelf(i,j)  + fluxes%ustar\_berg(i,j)
137 \textcolor{keywordflow}{  endif} ;\textcolor{keywordflow}{ enddo} ;\textcolor{keywordflow}{ enddo}
138 
139   \textcolor{comment}{!Zero'ing out other fluxes under the tabular icebergs}
140   \textcolor{keywordflow}{if} (cs%berg\_area\_threshold >= 0.) \textcolor{keywordflow}{then}
141     i\_dt\_lhf = 1.0 / (us%s\_to\_T*time\_step * cs%latent\_heat\_fusion)
142     \textcolor{keywordflow}{do} j=jsd,jed ; \textcolor{keywordflow}{do} i=isd,ied
143       \textcolor{keywordflow}{if} (fluxes%frac\_shelf\_h(i,j) > cs%berg\_area\_threshold) \textcolor{keywordflow}{then}
144         \textcolor{comment}{! Only applying for ice shelf covering most of cell.}
145 
146         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%sw)) fluxes%sw(i,j) = 0.0
147         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%lw)) fluxes%lw(i,j) = 0.0
148         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%latent)) fluxes%latent(i,j) = 0.0
149         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%evap)) fluxes%evap(i,j) = 0.0
150 
151         \textcolor{comment}{! Add frazil formation diagnosed by the ocean model [Q R Z ~> J m-2] in the}
152         \textcolor{comment}{! form of surface layer evaporation [R Z T-1 ~> kg m-2 s-1]. Update lprec in the}
153         \textcolor{comment}{! control structure for diagnostic purposes.}
154 
155         \textcolor{keywordflow}{if} (\textcolor{keyword}{allocated}(sfc\_state%frazil)) \textcolor{keywordflow}{then}
156           fraz = sfc\_state%frazil(i,j) * i\_dt\_lhf
157           \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%evap))  fluxes%evap(i,j)  = fluxes%evap(i,j)  - fraz
158         \textcolor{comment}{! if (associated(fluxes%lprec)) fluxes%lprec(i,j) = fluxes%lprec(i,j) - fraz}
159           sfc\_state%frazil(i,j) = 0.0
160 \textcolor{keywordflow}{        endif}
161 
162         \textcolor{comment}{!Alon: Should these be set to zero too?}
163         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%sens)) fluxes%sens(i,j) = 0.0
164         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%salt\_flux)) fluxes%salt\_flux(i,j) = 0.0
165         \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(fluxes%lprec)) fluxes%lprec(i,j) = 0.0
166 \textcolor{keywordflow}{      endif}
167 \textcolor{keywordflow}{    enddo} ;\textcolor{keywordflow}{ enddo}
168 \textcolor{keywordflow}{  endif}
169 
\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__marine__ice_af84733e6afc851704bbfd1051aea0487}\label{namespacemom__marine__ice_af84733e6afc851704bbfd1051aea0487}} 
\index{mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}!iceberg\+\_\+forces@{iceberg\+\_\+forces}}
\index{iceberg\+\_\+forces@{iceberg\+\_\+forces}!mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}}
\subsubsection{\texorpdfstring{iceberg\+\_\+forces()}{iceberg\_forces()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+marine\+\_\+ice\+::iceberg\+\_\+forces (\begin{DoxyParamCaption}\item[{type(ocean\+\_\+grid\+\_\+type), intent(inout)}]{G,  }\item[{type(mech\+\_\+forcing), intent(inout)}]{forces,  }\item[{logical, intent(in)}]{use\+\_\+ice\+\_\+shelf,  }\item[{type(surface), intent(inout)}]{sfc\+\_\+state,  }\item[{real, intent(in)}]{time\+\_\+step,  }\item[{type(\mbox{\hyperlink{structmom__marine__ice_1_1marine__ice__cs}{marine\+\_\+ice\+\_\+cs}}), pointer}]{CS }\end{DoxyParamCaption})}



add\+\_\+berg\+\_\+flux\+\_\+to\+\_\+shelf adds rigidity and ice-\/area coverage due to icebergs to the forces type fields, and adds ice-\/areal coverage and modifies various thermodynamic fluxes due to the presence of icebergs. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em g} & The ocean\textquotesingle{}s grid structure\\
\hline
\mbox{\tt in,out}  & {\em forces} & A structure with the driving mechanical forces\\
\hline
\mbox{\tt in,out}  & {\em sfc\+\_\+state} & A structure containing fields that describe the surface state of the ocean.\\
\hline
\mbox{\tt in}  & {\em use\+\_\+ice\+\_\+shelf} & If true, this configuration uses ice shelves.\\
\hline
\mbox{\tt in}  & {\em time\+\_\+step} & The coupling time step \mbox{[}s\mbox{]}.\\
\hline
 & {\em cs} & Pointer to the control structure for M\+O\+M\+\_\+marine\+\_\+ice \\
\hline
\end{DoxyParams}


Definition at line 46 of file M\+O\+M\+\_\+marine\+\_\+ice.\+F90.


\begin{DoxyCode}
46   \textcolor{keywordtype}{type}(ocean\_grid\_type), \textcolor{keywordtype}{intent(inout)} :: G\textcolor{comment}{       !< The ocean's grid structure}
47   \textcolor{keywordtype}{type}(mech\_forcing),    \textcolor{keywordtype}{intent(inout)} :: forces\textcolor{comment}{  !< A structure with the driving mechanical forces}
48   \textcolor{keywordtype}{type}(surface),         \textcolor{keywordtype}{intent(inout)} :: sfc\_state\textcolor{comment}{ !< A structure containing fields that}
49 \textcolor{comment}{                                                    !! describe the surface state of the ocean.}
50   \textcolor{keywordtype}{logical},               \textcolor{keywordtype}{intent(in)}    :: use\_ice\_shelf\textcolor{comment}{  !< If true, this configuration uses ice shelves.}
51   \textcolor{keywordtype}{real},                  \textcolor{keywordtype}{intent(in)}    :: time\_step\textcolor{comment}{  !< The coupling time step [s].}
52   \textcolor{keywordtype}{type}(marine\_ice\_CS),   \textcolor{keywordtype}{pointer}       :: CS\textcolor{comment}{      !< Pointer to the control structure for MOM\_marine\_ice}
53 
54   \textcolor{keywordtype}{real} :: kv\_rho\_ice \textcolor{comment}{! The viscosity of ice divided by its density [L4 Z-2 T-1 R-1 ~> m5 kg-1 s-1].}
55   \textcolor{keywordtype}{integer} :: i, j, is, ie, js, je
56   is = g%isc ; ie = g%iec ; js = g%jsc ; je = g%jec
57   \textcolor{comment}{!This routine adds iceberg data to the ice shelf data (if ice shelf is used)}
58   \textcolor{comment}{!which can then be used to change the top of ocean boundary condition used in}
59   \textcolor{comment}{!the ocean model. This routine is taken from the add\_shelf\_flux subroutine}
60   \textcolor{comment}{!within the ice shelf model.}
61 
62   \textcolor{keywordflow}{if} (.not.\textcolor{keyword}{associated}(cs)) \textcolor{keywordflow}{return}
63 
64   \textcolor{keywordflow}{if} (.not.(\textcolor{keyword}{associated}(forces%area\_berg) .and.  \textcolor{keyword}{associated}(forces%mass\_berg) ) ) \textcolor{keywordflow}{return}
65 
66   \textcolor{keywordflow}{if} (.not.(\textcolor{keyword}{associated}(forces%frac\_shelf\_u) .and. \textcolor{keyword}{associated}(forces%frac\_shelf\_v) .and. &
67             \textcolor{keyword}{associated}(forces%rigidity\_ice\_u) .and. \textcolor{keyword}{associated}(forces%rigidity\_ice\_v)) ) \textcolor{keywordflow}{return}
68 
69   \textcolor{comment}{! This section sets or augments the values of fields in forces.}
70   \textcolor{keywordflow}{if} (.not. use\_ice\_shelf) \textcolor{keywordflow}{then}
71     forces%frac\_shelf\_u(:,:) = 0.0 ; forces%frac\_shelf\_v(:,:) = 0.0
72 \textcolor{keywordflow}{  endif}
73   \textcolor{keywordflow}{if} (.not. forces%accumulate\_rigidity) \textcolor{keywordflow}{then}
74     forces%rigidity\_ice\_u(:,:) = 0.0 ; forces%rigidity\_ice\_v(:,:) = 0.0
75 \textcolor{keywordflow}{  endif}
76 
77   \textcolor{keyword}{call }pass\_var(forces%area\_berg, g%domain, to\_all+omit\_corners, halo=1, complete=.false.)
78   \textcolor{keyword}{call }pass\_var(forces%mass\_berg, g%domain, to\_all+omit\_corners, halo=1, complete=.true.)
79   kv\_rho\_ice = cs%kv\_iceberg / cs%density\_iceberg
80   \textcolor{keywordflow}{do} j=js,je ; \textcolor{keywordflow}{do} i=is-1,ie
81     \textcolor{keywordflow}{if} ((g%areaT(i,j) + g%areaT(i+1,j) > 0.0)) & \textcolor{comment}{! .and. (G%dxdy\_u(I,j) > 0.0)) &}
82       forces%frac\_shelf\_u(i,j) = forces%frac\_shelf\_u(i,j) + &
83            (forces%area\_berg(i,j)*g%areaT(i,j) + forces%area\_berg(i+1,j)*g%areaT(i+1,j)) / &
84            (g%areaT(i,j) + g%areaT(i+1,j))
85     forces%rigidity\_ice\_u(i,j) = forces%rigidity\_ice\_u(i,j) + kv\_rho\_ice * &
86                         min(forces%mass\_berg(i,j), forces%mass\_berg(i+1,j))
87 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}
88   \textcolor{keywordflow}{do} j=js-1,je ; \textcolor{keywordflow}{do} i=is,ie
89     \textcolor{keywordflow}{if} ((g%areaT(i,j) + g%areaT(i,j+1) > 0.0)) & \textcolor{comment}{! .and. (G%dxdy\_v(i,J) > 0.0)) &}
90       forces%frac\_shelf\_v(i,j) = forces%frac\_shelf\_v(i,j) + &
91            (forces%area\_berg(i,j)*g%areaT(i,j) + forces%area\_berg(i,j+1)*g%areaT(i,j+1)) / &
92            (g%areaT(i,j) + g%areaT(i,j+1))
93     forces%rigidity\_ice\_v(i,j) = forces%rigidity\_ice\_v(i,j) + kv\_rho\_ice * &
94                          min(forces%mass\_berg(i,j), forces%mass\_berg(i,j+1))
95 \textcolor{keywordflow}{  enddo} ;\textcolor{keywordflow}{ enddo}
96 
\end{DoxyCode}
\mbox{\Hypertarget{namespacemom__marine__ice_a72f210b9737887a318aa7dd2779e8850}\label{namespacemom__marine__ice_a72f210b9737887a318aa7dd2779e8850}} 
\index{mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}!marine\+\_\+ice\+\_\+init@{marine\+\_\+ice\+\_\+init}}
\index{marine\+\_\+ice\+\_\+init@{marine\+\_\+ice\+\_\+init}!mom\+\_\+marine\+\_\+ice@{mom\+\_\+marine\+\_\+ice}}
\subsubsection{\texorpdfstring{marine\+\_\+ice\+\_\+init()}{marine\_ice\_init()}}
{\footnotesize\ttfamily subroutine, public mom\+\_\+marine\+\_\+ice\+::marine\+\_\+ice\+\_\+init (\begin{DoxyParamCaption}\item[{type(time\+\_\+type), intent(in), target}]{Time,  }\item[{type(ocean\+\_\+grid\+\_\+type), intent(in)}]{G,  }\item[{type(param\+\_\+file\+\_\+type), intent(in)}]{param\+\_\+file,  }\item[{type(diag\+\_\+ctrl), intent(inout), target}]{diag,  }\item[{type(\mbox{\hyperlink{structmom__marine__ice_1_1marine__ice__cs}{marine\+\_\+ice\+\_\+cs}}), pointer}]{CS }\end{DoxyParamCaption})}



Initialize control structure for M\+O\+M\+\_\+marine\+\_\+ice. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em time} & Current model time\\
\hline
\mbox{\tt in}  & {\em g} & Ocean grid structure\\
\hline
\mbox{\tt in}  & {\em param\+\_\+file} & Runtime parameter handles\\
\hline
\mbox{\tt in,out}  & {\em diag} & Diagnostics control structure\\
\hline
 & {\em cs} & Pointer to the control structure for M\+O\+M\+\_\+marine\+\_\+ice \\
\hline
\end{DoxyParams}


Definition at line 174 of file M\+O\+M\+\_\+marine\+\_\+ice.\+F90.


\begin{DoxyCode}
174   \textcolor{keywordtype}{type}(time\_type), \textcolor{keywordtype}{target}, \textcolor{keywordtype}{intent(in)}    :: Time\textcolor{comment}{ !< Current model time}
175   \textcolor{keywordtype}{type}(ocean\_grid\_type),   \textcolor{keywordtype}{intent(in)}    :: G\textcolor{comment}{ !< Ocean grid structure}
176   \textcolor{keywordtype}{type}(param\_file\_type),   \textcolor{keywordtype}{intent(in)}    :: param\_file\textcolor{comment}{ !< Runtime parameter handles}
177   \textcolor{keywordtype}{type}(diag\_ctrl), \textcolor{keywordtype}{target}, \textcolor{keywordtype}{intent(inout)} :: diag\textcolor{comment}{ !< Diagnostics control structure}
178   \textcolor{keywordtype}{type}(marine\_ice\_CS),     \textcolor{keywordtype}{pointer}       :: CS\textcolor{comment}{   !< Pointer to the control structure for MOM\_marine\_ice}
179 \textcolor{comment}{! This include declares and sets the variable "version".}
180 \textcolor{preprocessor}{#include "version\_variable.h"}
181 \textcolor{preprocessor}{}  \textcolor{keywordtype}{character(len=40)}  :: mdl = \textcolor{stringliteral}{"MOM\_marine\_ice"}  \textcolor{comment}{! This module's name.}
182 
183   \textcolor{keywordflow}{if} (\textcolor{keyword}{associated}(cs)) \textcolor{keywordflow}{then}
184     \textcolor{keyword}{call }mom\_error(warning, \textcolor{stringliteral}{"marine\_ice\_init called with an associated control structure."})
185     \textcolor{keywordflow}{return}
186   \textcolor{keywordflow}{else} ; \textcolor{keyword}{allocate}(cs) ;\textcolor{keywordflow}{ endif}
187 
188   \textcolor{comment}{! Write all relevant parameters to the model log.}
189   \textcolor{keyword}{call }log\_version(mdl, version)
190 
191   \textcolor{keyword}{call }get\_param(param\_file, mdl, \textcolor{stringliteral}{"KV\_ICEBERG"},  cs%kv\_iceberg, &
192                  \textcolor{stringliteral}{"The viscosity of the icebergs"},  &
193                  units=\textcolor{stringliteral}{"m2 s-1"}, default=1.0e10, scale=g%US%Z\_to\_L**2*g%US%m\_to\_L**2*g%US%T\_to\_s)
194   \textcolor{keyword}{call }get\_param(param\_file, mdl, \textcolor{stringliteral}{"DENSITY\_ICEBERGS"},  cs%density\_iceberg, &
195                  \textcolor{stringliteral}{"A typical density of icebergs."}, units=\textcolor{stringliteral}{"kg m-3"}, default=917.0, scale=g%US%kg\_m3\_to\_R)
196   \textcolor{keyword}{call }get\_param(param\_file, mdl, \textcolor{stringliteral}{"LATENT\_HEAT\_FUSION"}, cs%latent\_heat\_fusion, &
197                  \textcolor{stringliteral}{"The latent heat of fusion."}, units=\textcolor{stringliteral}{"J/kg"}, default=hlf, scale=g%US%J\_kg\_to\_Q)
198   \textcolor{keyword}{call }get\_param(param\_file, mdl, \textcolor{stringliteral}{"BERG\_AREA\_THRESHOLD"}, cs%berg\_area\_threshold, &
199                  \textcolor{stringliteral}{"Fraction of grid cell which iceberg must occupy, so that fluxes "}//&
200                  \textcolor{stringliteral}{"below berg are set to zero. Not applied for negative "}//&
201                  \textcolor{stringliteral}{"values."}, units=\textcolor{stringliteral}{"non-dim"}, default=-1.0)
202 
\end{DoxyCode}
