### removed superfluous spaces at eol

parent d239f83f
 ... ... @@ -11,22 +11,22 @@ ! ! In this routine the bottom friction for the external (vertically integrated) ! mode is calculated. This is done separately for the $U$-equation in the ! U-points and for the $V$-equation in the V-points. ! U-points and for the $V$-equation in the V-points. ! The drag coefficient $R$ for the external mode is given in eq.\ ! (\ref{bottom_vert}) on page \pageref{bottom_vert}. ! For {\tt runtype=1} (only vertically integrated calculations), the ! bottom roughness length is depending on the bed friction ! bottom roughness length is depending on the bed friction ! velocity $u_*^b$ and the molecular viscosity $\nu$: ! ! \begin{equation}\label{Defz0b} ! z_0^b = 0.1 \frac{\nu}{u_*^b} + \left(z^b_0\right)_{\min}, ! \end{equation} ! ! ! see e.g.\ \cite{KAGAN95}, i.e.\ the given roughness may be increased ! by viscous effects. ! After this, the drag coefficient is multiplied by the absolute value of the ! local velocity, which is alculated by dividing the local transports by the ! local water depths and by properly interpolating these velocities ! local water depths and by properly interpolating these velocities ! to the U- and V-points. The resulting fields are {\tt ru}, representing ! $R\sqrt{u^2+v^2}$ on the U-points and {\tt rv}, representing ! this quantity on the V-points. ... ...
 ... ... @@ -2,7 +2,7 @@ !----------------------------------------------------------------------- !BOP ! ! !ROUTINE: cfl_check - check for explicit barotropic time step. ! !ROUTINE: cfl_check - check for explicit barotropic time step. ! ! !INTERFACE: subroutine cfl_check() ... ... @@ -18,7 +18,7 @@ ! {\sqrt{2} c_{i,j} \sqrt{\Delta x_{i,j}^2+ \Delta y_{i,j}^2}}\right\} ! \end{equation} ! ! with the local Courant number ! with the local Courant number ! ! \begin{equation} ! c_{i,j}=\sqrt{g H_{i,j}}, ... ... @@ -72,7 +72,7 @@ c = sqrt(g*H(i,j)) dtt = (dxc(i,j)*dyc(i,j))/ & (sqrt(2.0)*c*sqrt(dxc(i,j)*dxc(i,j)+dyc(i,j)*dyc(i,j))) #endif if (dtt .lt. max_dt) then max_dt=dtt ... ... @@ -87,7 +87,7 @@ #else c = sqrt(g*h_max) ! Becker and Deleersnijder max_dt = (dx*dy)/(sqrt(2.0)*c*sqrt(dx*dx+dy*dy)) max_dt = (dx*dy)/(sqrt(2.0)*c*sqrt(dx*dx+dy*dy)) #if 0 #ifdef POM_CFL ... ...
 ... ... @@ -94,7 +94,7 @@ ! for the fulfilment of the CFL criterium for shallow water theory ! {\tt cfl\_check} is called. A major part of this subroutine deals ! then with the setting of local bathymetry values and initial surface ! elevations in $u$- and $v$-points, also by calls to the subroutines ! elevations in $u$- and $v$-points, also by calls to the subroutines ! {\tt uv\_depths} and {\tt depth\_update}. ! ! !LOCAL VARIABLES: ... ... @@ -123,7 +123,7 @@ ! Allocates memory for the public data members - if not static call init_variables_2d(runtype) #if defined(GETM_PARALLEL) || defined(NO_BAROTROPIC) #if defined(GETM_PARALLEL) || defined(NO_BAROTROPIC) ! STDERR 'Not calling cfl_check() - GETM_PARALLEL or NO_BAROTROPIC' ! call cfl_check() #else ... ... @@ -196,7 +196,7 @@ LEVEL2 ' All An is zero for this (sub)domain - switching to An_method=0' An_method=0 end if case default call getm_error("init_2d()", & "A non valid An method has been chosen"); ... ...
 ... ... @@ -11,7 +11,7 @@ ! ! This small routine calls the $U$-equation and the $V$-equation in an ! alternating sequence (UVVUUVVUUVVU), in order to provide higher ! accuracy and energy conservation for the explicit numerical treatment ! accuracy and energy conservation for the explicit numerical treatment ! of the Coriolis term. ! ! !USES: ... ... @@ -75,16 +75,16 @@ ! number of slow terms is calculated. One slight modification is that ! for better stability of drying and flooding processes the slow friction ! term $S^x_F$ is now also multiplied with the parameter $\alpha$ defined ! in eq.\ (\ref{alpha}). ! in eq.\ (\ref{alpha}). ! ! Furthermore, the horizontal pressure gradient $\partial^*_x\zeta$ is ! Furthermore, the horizontal pressure gradient $\partial^*_x\zeta$ is ! modified in order to ! support drying and flooding, see figure \ref{figpressgrad} on page ! support drying and flooding, see figure \ref{figpressgrad} on page ! \pageref{figpressgrad} and the explanations in section \ref{Section_dry}. ! $\partial^*_x\zeta$ is now also considering the atmospheric pressure ! gradient at sea surface height. ! ! For numerical stability reasons, the $U$-momentum equation is here ! For numerical stability reasons, the $U$-momentum equation is here ! discretised in time such that the ! bed friction is treated explicitely: ! ... ... @@ -96,9 +96,9 @@ ! \end{equation} ! ! with $U_{Ex}$ combining advection and diffusion of $U$, see routines ! {\tt uv\_advect} (section \ref{sec-uv-advect} on page ! \pageref{sec-uv-advect}) and {\tt uv\_diffusion} ! (section \ref{sec-uv-diffusion} on page ! {\tt uv\_advect} (section \ref{sec-uv-advect} on page ! \pageref{sec-uv-advect}) and {\tt uv\_diffusion} ! (section \ref{sec-uv-diffusion} on page ! \pageref{sec-uv-diffusion}). The slow terms ! are calculated in the routine {\tt slow\_terms} documented in section ! \ref{sec-slow-terms} on page \pageref{sec-slow-terms}. ... ... @@ -153,7 +153,7 @@ #endif gammai = _ONE_/gamma !$OMP PARALLEL DEFAULT(SHARED) PRIVATE(i,j,zp,zm,Uloc) !$OMP DO SCHEDULE(RUNTIME) ... ... @@ -252,16 +252,16 @@ ! number of slow terms is calculated. One slight modification is that ! for better stability of drying and flooding processes the slow friction ! term $S^y_F$ is now also multiplied with the parameter $\alpha$ defined ! in eq.\ (\ref{alpha}). ! in eq.\ (\ref{alpha}). ! ! Furthermore, the horizontal pressure gradient $\partial^*_y\zeta$ is ! Furthermore, the horizontal pressure gradient $\partial^*_y\zeta$ is ! modified in order to ! support drying and flooding, see figure \ref{figpressgrad} on page ! support drying and flooding, see figure \ref{figpressgrad} on page ! \pageref{figpressgrad} and the explanations in section \ref{Section_dry}. ! $\partial^*_y\zeta$ is now also considering the atmospheric pressure ! gradient at sea surface height. ! ! For numerical stability reasons, the $V$-momentum equation is here ! For numerical stability reasons, the $V$-momentum equation is here ! discretised in time such that the ! bed friction is treated explicitely: ! ... ...
 ... ... @@ -24,7 +24,7 @@ ! ! where $t_0$ is the time when the residual calculation begins (to be ! chosen from namelist) and $t_1$ is the finishing time of the model simulation. ! ! ! ! !USES: use variables_2d, only: u,v,res_du,res_u,res_dv,res_v,du,dv ... ...
 ... ... @@ -11,12 +11,12 @@ ! ! Here, the sea surface elevation is iterated according to the vertically ! integrated continuity equation given in (\ref{Elevation}) on page ! \pageref{Elevation}. ! \pageref{Elevation}. ! ! When working with the option {\tt SLICE\_MODEL}, the elevations ! at $j=2$ are copied to $j=3$. ! ! Now with consideration of fresh water fluxes (precipitation and ! Now with consideration of fresh water fluxes (precipitation and ! evaporation). Positive for flux into the water. ! ! !USES: ... ... @@ -59,7 +59,7 @@ #endif call tic(TIM_SEALEVEL) ! OMP-NOTE: This loop does not really improve from threading. ! OMP-NOTE: This loop does not really improve from threading. ! It is bound by memory access, and everything is nicely ! lined up anyway, so we keep it in serial. do j=jmin-HALO,jmax+HALO ... ... @@ -77,8 +77,8 @@ break_flag=0 #endif ! Presently this loop is only threaded for no-breaks. ! If this loop should be threaded with USE_BREAKS, then ! Presently this loop is only threaded for no-breaks. ! If this loop should be threaded with USE_BREAKS, then ! a bit of coding and testing is needed (see below) as ! it is sliglty more complicated. ! The present routine is a small part of the total CPU. ... ... @@ -195,14 +195,14 @@ ! ! !DESCRIPTION: ! ! The sea surface elevation (2d) variable is sweeped scanning for ! not-a-number (NaN). NaN values indicate that the integration ! The sea surface elevation (2d) variable is sweeped scanning for ! not-a-number (NaN). NaN values indicate that the integration ! has become unstable and that it really should be stopped. ! First time a NaN value is found, a warning is issued and possibly ! the code is stopped. After the first encounter, the sweep is ! the code is stopped. After the first encounter, the sweep is ! suspended. ! ! The behaviour of this routine is controlled by the ! The behaviour of this routine is controlled by the ! {\tt sealevel\_check} parameter in the {\tt m2d} namelist. ! ! !USES: ... ... @@ -235,9 +235,9 @@ ! In general checking for NaN is not trivial. ! Some compilers allow the use of functions ISNAN or ieee_is_nan. ! The functions are not neceassily available for all compilers, so be careful. ! The approach taken here is to compare against HUGE and ! The approach taken here is to compare against HUGE and ! then say that the value is *not* NaN if it can compare less than HUGE. ! However, it is important that the comparison is not removed by the ! However, it is important that the comparison is not removed by the ! compiler - as it may really test out as "always true" from a compile- ! time point of view. Function inlining and other funny stuff done by smart ! compilers can make this approach not working. ... ... @@ -295,7 +295,7 @@ do i=imin,imax call sealevel_nandum(z(i,j),ahuge,idum) if (idum .eq. 2) then ! TODO: OMP may be implemented here, but this ! TODO: OMP may be implemented here, but this ! section would be critical. ! Increment counter for NaNs: ! Keep at least one point with location (may be overwritten later) ... ... @@ -354,7 +354,7 @@ ! to spot NaN values. ! Output is 1 or 2, based on which is smaller (a or b, respectively). ! The default is 2, and the idea is that "imin=2" should be returned ! also if a is NaN. If b=HUGE(b), then this provides a means to detect ! also if a is NaN. If b=HUGE(b), then this provides a means to detect ! if a is a denormal number. ! !EOP ... ...
 ... ... @@ -11,7 +11,7 @@ ! ! In this routine sea surface elevation boundary conditions are read ! in from a file, interpolated to the actual time step, and distributed ! to the open boundary grid boxes. ! to the open boundary grid boxes. ! Only for a special test case ({\tt SYLT\_TEST}), ascii data reading is ! supported. For a few special simple cases, analytical calculation ! of boundary elevations is supported. The generic way is reading in ... ...
 ... ... @@ -9,14 +9,14 @@ ! ! !DESCRIPTION: ! ! The advective terms in the vertically integrated ! The advective terms in the vertically integrated ! momentum equation are discretised in ! a momentum-conservative form. This is carried out here for the ! advective terms in the $U$-equation (\ref{UMOM}) and the ! a momentum-conservative form. This is carried out here for the ! advective terms in the $U$-equation (\ref{UMOM}) and the ! $V$-equation (\ref{VMOM}) (after applying the curvilinear ! coordinate transformationand multiplying these ! equations with $mn$). ! ! equations with $mn$). ! ! First advection term in (\ref{UMOM}): ! \begin{equation} ! \begin{array}{l} ... ... @@ -30,11 +30,11 @@ ! }{\Delta x^u_{i,j}\Delta y^u_{i,j}} ! \end{array} ! \end{equation} ! ! ! For the upwind scheme used here, the inter-facial velocities which are defined ! on T-points are here ! calculated as: ! ! ! \begin{equation} ! \tilde u_{i,j}= ! \left\{ ... ... @@ -42,17 +42,17 @@ ! \displaystyle ! \frac{U_{i-1,j}}{D^u_{i-1,j}} & \mbox{ for } \frac12(U_{i,j}+U_{i-1,j})>0\\ \\ ! \displaystyle ! \frac{U_{i,j}}{D^u_{i,j}} & \mbox{ else. } ! \frac{U_{i,j}}{D^u_{i,j}} & \mbox{ else. } ! \end{array} ! \right. ! \end{equation} ! ! ! Second advection term in (\ref{UMOM}): ! \begin{equation} ! \begin{array}{l} ! \displaystyle ! \left(mn\,\partial_{\cal Y}y\left(\frac{UV}{Dm}\right)\right)_{i,j,k}\approx \\ \\ ! \displaystyle ! \displaystyle ! \left(mn\,\partial_{\cal Y}y\left(\frac{UV}{Dm}\right)\right)_{i,j,k}\approx \\ \\ ! \displaystyle ! \quad ! \frac{ ! \frac12(V_{i+1,j}+V_{i,j})\tilde u_{i,j}\Delta x^+_{i,j}- ... ... @@ -60,12 +60,12 @@ ! }{\Delta x^u_{i,j}\Delta y^u_{i,j}} ! \end{array} ! \end{equation} ! ! For the upwind scheme used here, the inter-facial ! ! For the upwind scheme used here, the inter-facial ! velocities which are defined on ! X-points are here ! calculated as: ! ! ! \begin{equation} ! \tilde u_{i,j}= ! \left\{ ... ... @@ -73,17 +73,17 @@ ! \displaystyle ! \frac{U_{i,j}}{D^u_{i,j}} & \mbox{ for } \frac12(V_{i+1,j,k}+V_{i,j,k})>0\\ \\ ! \displaystyle ! \frac{U_{i,j+1}}{D^u_{i,j+1}} & \mbox{ else. } ! \frac{U_{i,j+1}}{D^u_{i,j+1}} & \mbox{ else. } ! \end{array} ! \right. ! \end{equation} ! ! ! First advection term in (\ref{VMOM}): ! \begin{equation} ! \begin{array}{l} ! \displaystyle ! \left(mn\,\partial_{\cal X}\left(\frac{UV}{Dn}\right)\right)_{i,j,k}\approx \\ \\ ! \displaystyle ! \displaystyle ! \left(mn\,\partial_{\cal X}\left(\frac{UV}{Dn}\right)\right)_{i,j,k}\approx \\ \\ ! \displaystyle ! \quad ! \frac{ ! \frac12(U_{i,j+1}+U_{i,j})\tilde v_{i,j}\Delta y^+_{i,j}- ... ... @@ -91,12 +91,12 @@ ! }{\Delta x^v_{i,j}\Delta y^v_{i,j}} ! \end{array} ! \end{equation} ! ! For the upwind scheme used here, the interfacial ! ! For the upwind scheme used here, the interfacial ! velocities which are defined on ! X-points are here ! calculated as: ! ! ! \begin{equation} ! \tilde v_{i,j}= ! \left\{ ... ... @@ -104,11 +104,11 @@ ! \displaystyle ! \frac{V_{i,j}}{D^v_{i,j}} & \mbox{ for } \frac12(U_{i+1,j}+U_{i,j})>0\\ \\ ! \displaystyle ! \frac{V_{i+1,j}}{D^v_{i+1,j}} & \mbox{ else. } ! \frac{V_{i+1,j}}{D^v_{i+1,j}} & \mbox{ else. } ! \end{array} ! \right. ! \end{equation} ! ! ! Second advection term in (\ref{VMOM}): ! \begin{equation} ! \begin{array}{l} ... ... @@ -122,11 +122,11 @@ ! }{\Delta x^v_{i,j}\Delta y^v_{i,j}} ! \end{array} ! \end{equation} ! ! ! For the upwind scheme used here, the interfacial velocities which are defined ! on T-points are here ! calculated as: ! ! ! \begin{equation} ! \tilde v_{i,j}= ! \left\{ ... ... @@ -134,7 +134,7 @@ ! \displaystyle ! \frac{V_{i,j-1}}{D^v_{i,j-1}} & \mbox{ for } \frac12(V_{i,j}+V_{i,j-1})>0\\ \\ ! \displaystyle ! \frac{V_{i,j}}{D^v_{i,j}} & \mbox{ else. } ! \frac{V_{i,j}}{D^v_{i,j}} & \mbox{ else. } ! \end{array} ! \right. ! \end{equation} ... ...
 ... ... @@ -18,21 +18,21 @@ ! H^u_{i,j} = \left\{ ! \begin{array}{ll} ! \displaystyle ! \frac12 \left(H_{i,j}+H_{i+1,j}\right), & ! \frac12 \left(H_{i,j}+H_{i+1,j}\right), & ! \displaystyle ! \mbox{ for {\tt vel\_depth\_method}} =0, \\ \\ ! \mbox{ for {\tt vel\_depth\_method}} =0, \\ \\ ! \displaystyle ! \min\left\{H_{i,j}+H_{i+1,j}\right\}, & ! \min\left\{H_{i,j}+H_{i+1,j}\right\}, & ! \displaystyle ! \mbox{ for {\tt vel\_depth\_method}} =1, \\ \\ ! \mbox{ for {\tt vel\_depth\_method}} =1, \\ \\ ! \displaystyle ! \min\left\{H_{i,j}+H_{i+1,j}\right\}, & ! \min\left\{H_{i,j}+H_{i+1,j}\right\}, & ! \displaystyle ! \mbox{ for {\tt vel\_depth\_method}} =2 \mbox{ and } \min\{H_{i,j}i,H_{i+1,j}\}
 ... ... @@ -16,14 +16,14 @@ ! $U$- and the $V$-equation, respectively. The physical diffusion with the ! given eddy viscosity coefficient $A_h^M$ is based on velocity gradients, ! whereas an additional numerical damping of the barotropic mode is based ! on gradients of the transports with the damping coefficient $A_h^N$, ! see the example given as equations (\ref{smooth_example_1}) and ! on gradients of the transports with the damping coefficient $A_h^N$, ! see the example given as equations (\ref{smooth_example_1}) and ! (\ref{smooth_example_2}). ! ! First diffusion term in (\ref{UMOM}): ! \begin{equation} ! \left(mn\,\partial_{\cal X}\left(2A_h^MD\partial_{\cal X}\left(\frac{U}{D}\right) ! + A_h^N\partial_{\cal X}U\right)\right)_{i,j}\approx ! + A_h^N\partial_{\cal X}U\right)\right)_{i,j}\approx ! \frac{ ! {\cal F}^{Dxx}_{i+1,j}-{\cal F}^{Dxx}_{i,j} ! }{\Delta x^u_{i,j}\Delta y^u_{i,j}} ... ... @@ -41,7 +41,7 @@ ! Second diffusion term in (\ref{UMOM}): ! \begin{equation} ! \left(mn\,\partial_{\cal Y}\left(A_h^MD\left(\partial_{\cal Y}\left(\frac{U}{D}\right)+\partial_{\cal X}\left(\frac{V}{D}\right)\right) ! + A_h^N\partial_{\cal Y}U\right)\right)_{i,j}\approx ! + A_h^N\partial_{\cal Y}U\right)\right)_{i,j}\approx ! \frac{ ! {\cal F}^{Dxy}_{i,j}-{\cal F}^{Dxy}_{i,j-1} ! }{\Delta x^x_{i,j}\Delta y^x_{i,j}} ... ... @@ -69,7 +69,7 @@ ! First diffusion term in (\ref{VMOM}): ! \begin{equation} ! \left(mn\,\partial_{\cal X}\left(A_h^MD\left(\partial_{\cal Y}\left(\frac{U}{D}\right)+\partial_{\cal X}\left(\frac{V}{D}\right)\right) ! + A_h^N\partial_{\cal X}V\right)\right)_{i,j}\approx ! + A_h^N\partial_{\cal X}V\right)\right)_{i,j}\approx ! \frac{ ! {\cal F}^{Dyx}_{i,j}-{\cal F}^{Dyx}_{i-1,j} ! }{\Delta x^x_{i,j}\Delta y^x_{i,j}} ... ... @@ -97,7 +97,7 @@ ! Second diffusion term in (\ref{VMOM}): ! \begin{equation} ! \left(mn\,\partial_{\cal Y}\left(2A_h^MD\partial_{\cal Y}\left(\frac{V}{D}\right) ! + A_h^N\partial_{\cal Y}V\right)\right)_{i,j}\approx ! + A_h^N\partial_{\cal Y}V\right)\right)_{i,j}\approx ! \frac{ ! {\cal F}^{Dyy}_{i,j+1}-{\cal F}^{Dyy}_{i,j} ! }{\Delta x^v_{i,j}\Delta y^v_{i,j}} ... ... @@ -121,18 +121,18 @@ ! \displaystyle ! \partial_t \eta = - \partial_x U - \partial_y V \\ \\ ! \displaystyle ! \partial_t U = -gD\partial_x\eta ! \partial_t U = -gD\partial_x\eta ! + A_h^N \left(\partial_{xx} U + \partial_{yy} U\right) \\ \\ ! \displaystyle ! \partial_t V = -gD\partial_y\eta ! \partial_t V = -gD\partial_y\eta ! + A_h^N \left(\partial_{xx} V + \partial_{yy} V\right), \\ \\ ! \end{array} ! \end{equation} ! ! which can be transformed into an equation for $\partial_t\eta$ by ! derivation of the $\eta$-equation with respect to $t$, ! derivation of the $\eta$-equation with respect to $t$, ! of the $U$-equation with respect to $x$ ! and the $V$-equation with respect to $y$ and subsequent elimination of ! and the $V$-equation with respect to $y$ and subsequent elimination of ! $U$ and $V$: ! ! \begin{equation}\label{smooth_example_2} ... ... @@ -147,10 +147,10 @@ ! free surface elevation oscillations in a momentum-conservative ! manner. Hydrodynamic models with implicit treatment of the barotropic mode ! do not need to apply this method due to the implicit damping of those models, ! see e.g.\ \cite{BACKHAUS85}. The implementation of this explicit damping ! see e.g.\ \cite{BACKHAUS85}. The implementation of this explicit damping ! described here has been suggested by Jean-Marie Beckers, Li\'ege ! (Belgium). ! ! ! When working with the option {\tt SLICE\_MODEL}, the calculation of ! all gradients in $y$-direction is suppressed. ! ... ...
 ... ... @@ -49,44 +49,44 @@ IMPLICIT NONE ! ! !DESCRIPTION: ! Allocates memory (unless {\tt STATIC} is set) for 2D related fields, ! by an include statement. Furthermore all public 2D variables are ! Allocates memory (unless {\tt STATIC} is set) for 2D related fields, ! by an include statement. Furthermore all public 2D variables are ! initialised to zero. Those are listed in table \ref{table_2d_variables} ! on page \pageref{table_2d_variables}. ! ! \begin{table}[h] ! \begin{center} ! \begin{tabular}{lll} ! {\tt z } & sea surface elevation in T-point & [m] \\ ! {\tt zu } & sea surface elevation in U-point & [m]\\ ! {\tt zv } & sea surface elevation in V-point & [m]\\ ! {\tt U } & $x$ component of transport in U-point & [m$^2$s$^{-1}$] \\ ! {\tt DU } & water depth in U-point & [m] \\ ! {\tt fU } & Coriolis term for $V$-equation in V-point & [m$^2$s$^{-2}$] \\ ! {\tt SlUx } & slow term for $U$-equation in U-point & [m$^2$s$^{-2}$] \\ ! {\tt z } & sea surface elevation in T-point & [m] \\ ! {\tt zu } & sea surface elevation in U-point & [m]\\ ! {\tt zv } & sea surface elevation in V-point & [m]\\ ! {\tt U } & $x$ component of transport in U-point & [m$^2$s$^{-1}$] \\ ! {\tt DU } & water depth in U-point & [m] \\ ! {\tt fU } & Coriolis term for $V$-equation in V-point & [m$^2$s$^{-2}$] \\ ! {\tt SlUx } & slow term for $U$-equation in U-point & [m$^2$s$^{-2}$] \\ ! {\tt Slru } &slow bottom friction for $U$-equation in U-point & ! [m$^2$s$^{-2}$]\\ ! {\tt V } & $y$ component of transport in V-point & [m$^2$s$^{-1}$]\\ ! {\tt DV } & water depth in V-point & [m] \\ ! {\tt fV } & Coriolis term for $U$-equation in U-point & [m$^2$s$^{-2}$]\\ ! {\tt SlVx } & slow term for $V$-equation in V-point & [m$^2$s$^{-2}$] \\ ! [m$^2$s$^{-2}$]\\ ! {\tt V } & $y$ component of transport in V-point & [m$^2$s$^{-1}$]\\ ! {\tt DV } & water depth in V-point & [m] \\ ! {\tt fV } & Coriolis term for $U$-equation in U-point & [m$^2$s$^{-2}$]\\ ! {\tt SlVx } & slow term for $V$-equation in V-point & [m$^2$s$^{-2}$] \\ ! {\tt Slrv } &slow bottom friction for $V$-equation in V-point & ! [m$^2$s$^{-2}$]\\ ! {\tt Uint } & $x$-component of mean transport in U-point & [m$^2$s$^{-1}$]\\ ! {\tt Vint } & $y$-component of mean transport in V-point & [m$^2$s$^{-1}$]\\ ! {\tt UEx } & sum of explicit terms for for $U$-equation in U-point & [m$^2$s$^{-2}$]\\ ! {\tt VEx } &sum of explicit terms for for $V$-equation in V-point & [m$^2$s$^{-2}$]\\ ! {\tt ru } & bottom friction for $U$-equation in U-point & [m$^2$s$^{-2}$]\\ ! {\tt rv } &bottom friction for $V$-equation in V-point & [m$^2$s$^{-2}$]\\ ! {\tt res\_du } & residual depth in U-point & [m]\\ ! [m$^2$s$^{-2}$]\\ ! {\tt Uint } & $x$-component of mean transport in U-point & [m$^2$s$^{-1}$]\\ ! {\tt Vint } & $y$-component of mean transport in V-point & [m$^2$s$^{-1}$]\\ ! {\tt UEx } & sum of explicit terms for for $U$-equation in U-point & [m$^2$s$^{-2}$]\\ ! {\tt VEx } &sum of explicit terms for for $V$-equation in V-point & [m$^2$s$^{-2}$]\\ ! {\tt ru } & bottom friction for $U$-equation in U-point & [m$^2$s$^{-2}$]\\ ! {\tt rv } &bottom friction for $V$-equation in V-point & [m$^2$s$^{-2}$]\\ ! {\tt res\_du } & residual depth in U-point & [m]\\ ! {\tt res\_u } & $x$-component of residual transport in U-point & ! [m$^2$s$^{-1}$]\\ ! {\tt res\_dv } & residual depth in V-point & [m] \\ ! [m$^2$s$^{-1}$]\\ ! {\tt res\_dv } & residual depth in V-point & [m] \\ ! {\tt res\_v } &$y$-component of residual transport in V-point & ! [m$^2$s$^{-1}$]\\ ! {\tt surfdiv } &divergence of surface currents in T-point & [s$^{-1}$]\\ ! [m$^2$s$^{-1}$]\\ ! {\tt surfdiv } &divergence of surface currents in T-point & [s$^{-1}$]\\ ! \end{tabular} ! \caption{Public 2D variables.} ! \caption{Public 2D variables.} ! \label{table_2d_variables} ! \end{center} ! \end{table} ... ... @@ -116,16 +116,16 @@ break_mask = 0 #endif z = _ZERO_; zo =_ZERO_ zu = _ZERO_; zub=_ZERO_ ; zub0=_ZERO_ zv = _ZERO_; zvb=_ZERO_ ; zvb0=_ZERO_ D = _ZERO_; U = _ZERO_; DU = _ZERO_; fU = _ZERO_; Uint = _ZERO_; UEx = _ZERO_ V = _ZERO_; DV = _ZERO_; fV = _ZERO_; Vint = _ZERO_; VEx = _ZERO_ z = _ZERO_; zo =_ZERO_ zu = _ZERO_; zub=_ZERO_ ; zub0=_ZERO_ zv = _ZERO_; zvb=_ZERO_ ; zvb0=_ZERO_ D = _ZERO_; U = _ZERO_; DU = _ZERO_; fU = _ZERO_; Uint = _ZERO_; UEx = _ZERO_ V = _ZERO_; DV = _ZERO_; fV = _ZERO_; Vint = _ZERO_; VEx = _ZERO_ ru = _ZERO_; ruu=_ZERO_; Uinto=_ZERO_ rv = _ZERO_; rvv=_ZERO_; Vinto=_ZERO_ res_du = _ZERO_; res_u = _ZERO_ res_dv = _ZERO_; res_v = _ZERO_ ... ...
 ... ... @@ -13,19 +13,19 @@ ! convention as the other modules in 'getm'. The module is initialised ! by calling 'init\_advection\_3d()'. In the time-loop 'do\_advection\_3d' is ! called. 'do\_advection\_3d' is a wrapper routine which - dependent on the ! actual advection scheme chosen - makes calls to the appropriate ! actual advection scheme chosen - makes calls to the appropriate ! subroutines, which may be done as one-step or multiple-step schemes. ! The actual subroutines are coded in external FORTRAN files. ! New advection schemes are easily implemented - at least from a program ! point of view - since only this module needs to be changed. ! Additional work arrays can easily be added following the stencil given ! below. To add a new advection scheme three things must be done: ! below. To add a new advection scheme three things must be done: ! ! \begin{enumerate}